我的示例显示我尝试向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??
答案 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();