2017-04-05 78 views
0

我遇到了一些與我的程序有關的問題。我試圖從org.eclipse.swt.widgets.DateTime獲取dateTime小部件中的日期值。我的程序正在工作,當我更改它將存儲在Arraylist中的日期並打印出來。但我的問題是我不知道它是否保存或不存在,我如何獲取存儲在Arraylist中的所有日期的值?在Java語言中將日期時間存儲在Arraylist中

到目前爲止,這是我試過

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ę웃Пepeúpaツ我該怎麼做?我的意思是我應該像這樣改變'ArrayList readDateList(String)'?對不起我混淆 –

回答

0

的問題是, 每次調用readDateList()時間,舊的對象alDate是走了,你要創建一個新一個

從方法readDateList中刪除alDate並使其成爲全局類。

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謝謝你!理解這點我太慢了。還有你的Xoce –