2017-04-05 11 views
0

내 프로그램에 문제가 있습니다. org.eclipse.swt.widgets.DateTime에서 dateTime 위젯으로 날짜의 값을 가져 오려고합니다. 내 프로그램이 작동하고 있는데, 그 날짜가 Arraylist에 저장되어 인쇄됩니다. 하지만 내 문제는 그것이 절약인지 아닌지, 그리고 Arraylist에 저장된 모든 날짜의 값을 어떻게 얻을 수 있습니까?java swt의 Arraylist에 DateTime 저장

은 지금까지 내가 문제는 당신이 readDateList() 호출 할 때마다, 기존의 객체 alDate 영원히 사라지고 당신이 새로운 하나를 만드는 이다

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

** 힌트 :

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

은 같은 목록을 인쇄하는 새로운 방법을 추가 ** 좋은 일을 위해 사라지고 새로운 것을 만들어 내고 있습니다! –

+0

@ ΦXocę 웃어 epepeúpa ツ 어떻게 그렇게 할 수 있습니까? 내가'ArrayList readDateList (String)'처럼 바꿔야한다는 뜻인가? 죄송합니다 Im confuse –

답변

0

을 시도하는 것이다.

readDateList 메서드에서 제거하고 클래스에 대해 전역으로 만듭니다. * ** 때마다 전화 *** readDateList ***, 기존의 객체 *** alDate :

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 –