匿名类扩展抽象类

时间:2014-10-10 21:48:32

标签: java anonymous-types

我希望在指定时间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 - 最新的

2 个答案:

答案 0 :(得分:3)

在匿名内部类中,this是对当前TimerTask匿名子类的引用,而不是对封闭类的引用。

要引用封闭类,请限定this

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

答案 1 :(得分:0)

我们需要更多代码。 rrun作为参数是什么?

我的猜测是你想要这个:

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