2014-10-10 5 views
0

Я планирую запланировать задачу в указанное время startTime, и когда это время наступит, Я хочу, чтобы он запускал метод rrun(boolean param1, Object someObj).анонимный класс, расширяющий абстрактный класс

rrun() - метод в классе, скажем SomeClass.

И, в SomeClass снова, у меня есть метод m1(), который делает это как часть своего кода:

Timer startTimer = new Timer(); 


    startTimer.schedule(new TimerTask() { 
        public void run() {rrun(false, this);} 
       }, 
      startTime); 

К этому, я получаю ошибку, что

incompatible types: <anonymous TimerTask> cannot be converted to SomeClass 

Что случилось с чем я работаю?

TIA.

// ===============================

EDIT:

Я используя JDK 8 - последний

+0

что ваш Java компилятор? –

+1

@VictorSorokin jdk 8 – Roam

+0

Извините за нерелевантный вопрос, проблема прибита rgettman –

ответ

3

Внутри анонимного внутреннего класса, this является ссылкой на текущий TimerTask анонимного подкласса, а не класс вшита.

Чтобы обратиться к классу ограждающей, право this:

public void run() {rrun(false, SomeClass.this);} 
+0

работает. 10 других минут, чтобы принять. – Roam

0

Нам нужно больше кода, чем это. Что же делать в качестве аргументов?

Я думаю, вы хотите, чтобы это хотя:

public void run() {rrun(false, SomeClass.this);} 
Смежные вопросы