如何调用我在匿名类中定义的额外方法?

时间:2016-09-20 12:28:31

标签: java anonymous-class

我的示例显示我尝试向Runnable匿名类添加一些额外的方法,一般来说如何调用我创建的额外方法。

Runnable myRunnable = new Runnable()
{
    public void run()
    {
        System.out.println("Running");
    }
    // any  extra method to explain the question 
    public void a()
    {
        System.out.println("A");
    }

};
myRunnable.run();
myRunnable.a(); // is this right??

1 个答案:

答案 0 :(得分:1)

为什么你甚至可以做这样的事情?您的myRunnable对象的类型为java.lang.Runnable。除了现有的方法之外,它没有任何其他方法。 Java无法在运行时知道分配给myRunnable的实际对象实际上是您自己的实现。

但是,您可以这样做:

class MyRunnable implements Runnable {
    @Override
    public void run() { }
    public void myMethod() { }
}

然后

MyRunnable mr = new MyRunnable();
mr.myMethod();