2014-12-03 4 views
0

에서 인스턴스화 할 수없는 확장 timed task 아래 : 제가하고 싶은 것은은 클래스의 새 인스턴스가 TimerTask를 내가 가진 주요

static TimerTask timedTask = new TimerTask() { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 
     System.out.println("timed task"); 
    } 
}; 

//main method 
main(...) { 
Timer timer = new Timer(); 
    timer.schedule(timedTask, (long) logfile.getFileHash().get(1).getTimeStampInMilli()); 
} 

, 내가 만들 수 있도록 TimerTask을 exteds 클래스를 만들 수 있습니다 새로운 timerTask 언제 내가 원할 때.

class TimerTask2 extends TimerTask { 

    @Override 
    public void run() { 
     // TODO Auto-generated method stub 

    } 
} 

라인

timer.schedule(new TimerTask2(), (long) logfile.getFileHash().get(i).getTimeStampInMilli());이 ecipse에 의해 higlighted입니다 다음과 같이 말한다 : 유형 File_IO의

없음 둘러싸는 인스턴스가 액세스 할 수 없습니다 다음과 같이 내가 클래스를 만들 때하지만 문제이다. 할당을 File_IO 유형을 둘러싸는 인스턴스로 한정해야합니다 (예 : x.new A(), x는 File_IO의 인스턴스 임).

te 클래스 인스턴스를 주 클래스 이름으로 한정하려고했지만 작동하지 않았습니다.

친절하게 제안 해주십시오.

+0

[자바 - 유형 없음 둘러싸는 예를 푸에 액세스]의 사용 가능한 복제 (http://stackoverflow.com/questions/9560600/java-no-enclosing- instance-of-type-foo-is-accessible) – fabian

답변

0

는 TimerTask2 정적 수정을 추가

static class TimerTask2 extends TimerTask { 
    @Override 
    public void run() { 
    } 
} 
+0

지금은 작동하지만, 어떻게 알았습니까? – user2121

+0

main()이 정적이고 TimerTask2가 main 클래스 내부에 정의되어 있기 때문입니다. 이것은 정적 메소드에서 비 정적 필드를 읽으려고하는 경우와 같습니다. –

관련 문제