我希望在指定时间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。
// ===============================
编辑:
我使用的是JDK 8 - 最新的
答案 0 :(得分:3)
在匿名内部类中,this
是对当前TimerTask
匿名子类的引用,而不是对封闭类的引用。
要引用封闭类,请限定this
:
public void run() {rrun(false, SomeClass.this);}
答案 1 :(得分:0)
我们需要更多代码。 rrun作为参数是什么?
我的猜测是你想要这个:
public void run() {rrun(false, SomeClass.this);}