2017-04-05 9 views
0

私のプログラムに何か問題があります。私はorg.eclipse.swt.widgets.DateTimeからdateTimeウィジェットから日付の値を取得しようとしています。私のプログラムは、Arraylistに保存されている日付を変更して印刷するときに働いています。しかし、私の問題は、それが貯蓄であるかどうかわからないのです。そして、私はArraylistに保管されているすべての日付の価値をどのように得ることができますか?java swtのArraylistに日付時刻を保存

は、これまでのところ、これは私が問題はあなたがreadDateList()呼び出すたびに、古いオブジェクトalDateが良いために行っている、あなたが新しい 1を作成している ことです

public void readDateList() 
{ 
    Calendar instance = Calendar.getInstance(); 
    instance.set(Calendar.DAY_OF_MONTH, dateFrom.getDay()); 
    instance.set(Calendar.MONTH, dateFrom.getMonth()); 
    instance.set(Calendar.YEAR, dateFrom.getYear()); 
    String strDateString = new SimpleDateFormat("yyyyMMdd").format(instance.getTime()); 

    ArrayList<String> alDate = new ArrayList<String>(); 
    alDate.add(strDateString); 
    System.out.println(alDate);  
} 
+1

:**あなたが*** *** readDateList、古いオブジェクト*** alDate *呼び出すたび**は良いのために消えて、あなたは新しいものを作成しています! –

+0

@ΦXocę웃いepepeúpaツどうすればいいですか?私はこれらの 'ArrayList readDateList(String)'のように変更する必要がありますか?申し訳ありませんが、私は混乱しています –

答えて

0

を試みたものです。

alDateをメソッドreadDateListから削除し、クラスにグローバル化します。

ArrayList<String> alDate = new ArrayList<String>(); 

のように、リストを印刷する新しいメソッドを追加します。ヒント**

public void printList(){ 
    System.out.println(alDate);  
} 
+1

@abrakadabrahastags "クラスにグローバル化する"とはクラスフィールドとして宣言することを意味します。メソッド内で宣言すると、ブロック内でのみ可視になります(この場合はメソッド)。範囲外になると(メソッドが終了すると)、これ以上アクセスできなくなり、GCはそれを早急に収集します。 https://docs.oracle.com/javase/tutorial/java/javaOO/variables.html – Fildor

+1

@Fildor gotcha thanks manを参照してください。私はこれを理解するには遅すぎる。あなたにもXoce –