Java에서 타이머 방식을 처음 사용하고 다른 언어 (예 : C++)에서 사용했던 다른 타이머 방법과 똑같지 않습니다.타이머는 주 기능의 모든 매개 변수를 사용할 수 없습니다.
다른 여러 스레드에서 백그라운드에서 다른 일이 발생하는 동안 매초마다 호출하는 함수가 필요합니다.
타이머 함수 내에서 참조되는 변수가 final로 정의되어있는 한 main 함수 내부에서 작동하는 것으로 보이는 메서드를 발견했습니다. 한 변수는 최종으로 가질 수 없으므로 타이머 함수 내에서 이것을 참조하는 데 문제가 있습니다.
그럼, 제 질문은 타이머 방식을 사용하는 좋은 방법입니까? 타이머 기능 내에서 사용해야 할 항목이 많다는 것을 명심하십시오. 아니면 다른 변수를 사용하여 슬픔을 느낄 수 있습니까? 해결책은 간단 할 수 있습니다, 사과하는 경우, 긴 하루였습니다. 그리고 마감 할 때마다 제 두뇌가 중단되는 경우가 있습니다. 나는 당신의 문제에 대한 두 가지 솔루션을 볼 수 있습니다
public static void main(String[] args) {
Timer timer = new Timer();
String StringThatWillBeChangingOften = "";
final String finalString = "abc";
try{
timer.scheduleAtFixedRate(new TimerTask() {
String s = StringThatWillBeChangingOften; //ERROR ON THIS LINE
public void run() {
//Referencing other variables from main works fine as long they are defined as final
//ie finalString works fine
}
}, 1000, 1000);
//Catch...
}
}
Timer의 run() 메소드가 실행될 때, 타이머를 만들 때 가진'StringThatWillBeChangingOften'의 값을 사용 하시겠습니까, 아니면'StringThatWillBeChangingOften'의 값을 사용하고 싶습니까 지금? –
참조로 통과로 처리 될 수 있습니다. 타이머 내에서 변경되지 않습니다. – DenizC
그건 내 질문에 실제로 대답하지 않습니다. –