2013-06-11 3 views
1

Java TimerTask를 사용하여 1 분마다 기능을 수행하려고합니다.TimerTask 내에서 응용 프로그램 변수 가져 오기

나는 다음과 같은 코드가있다 : 여기에서

Public Class SomeClass{ 
String somevar = 'some text'; 
Timer timer = new Timer(); 
TimerTask hourlyTask = new TimerTask() { 
@Override 
public void run() { 
    I need to access the variable somevar here. 
} 
}; 
} 

을 촬영 : How to call function every hour? Also, how can I loop this?

문제는 함수 실행()에서, I에 포함 된 응용 프로그램에서 몇 가지 변수에 접근 할 필요가있다 이 TimerTask.

'this'키워드를 사용해 보았지만, 분명히 TimerTask는 자체 개체이므로 'this'는 TimerTask 내의 항목 만 참조합니다.

+1

"응용 프로그램 변수"는 무엇을 의미합니까? 귀하가하려는 것을 보여주는 작고 완전한 * 예를 제공해주십시오. "complete"는 예제에 예제 변수가 포함되어야하며, run() 메소드에서 사용해야하는 클래스 및/또는 메소드가 포함되어 있는지 보여줍니다. –

답변

1

OuterClass.this.outerVariable을 사용할 수 있지만 외부 클래스와 내부 클래스의 두 클래스가 동일한 이름의 변수를 가지고 있지 않으면 일반적으로 필요하지 않습니다. 그렇지 않으면 외부 클래스 필드가 내부 클래스에 완전히 액세스 할 수 있습니다.

시도 및 컴파일 오류가 더 많이 표시되면 도움을받을 수 있습니다.

+2

Okie. '그렇지 않으면 외부 클래스 필드에 완전히 액세스 할 수 있습니다'라는 진술은 올바른 방향으로 나를 잡았습니다. 나는 'this'라는 키워드를 사용하려고했지만, 그만 둔다면 발견된다. 감사. –

+0

@LeeLoftiss : 너 거기 간다! 다행 이네! –

+0

나는 똑같은 문제가 있고 나는 아직도 약간 혼란 스럽다. – michal

관련 문제