我看到一个示例代码,其中使用了新的Runnable(),它是匿名内部类。
Runnable runnable = new Runnable() {
public void run() {
int option = (int) (Math.random() * 4);
switch (option) {
case 0: x.a(); break;
case 1: x.b(); break;
case 2: y.a(); break;
case 3: y.b(); break;
}
}
};
感谢任何帮助。我是新手。
答案 0 :(得分:5)
是。我们可以。那被称为匿名内部阶级。不仅Runnable
,而且您可以匿名为任何界面创建。
建议阅读本文
https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
答案 1 :(得分:2)
我想在这里添加一些内容以使事情更加清晰 我们永远无法在java中实例化接口。但是,我们可以参考通过接口类型实现接口的对象。
在你共享的代码中,我们创建了一个实现该接口的匿名类。我们正在创建一个匿名类型的对象,而不是接口Runnable。
public class RunnableImpl implements Runnable{
...
}
public static void main(String[] args)
{
Runnable runnable = new RunnableImpl();
//Runnable test = new Runnable(); // wont compile
}