我目前正在学习Java类(class),并且遇到了一些令人困惑的代码。
例子:
Runnable runnable = new Runnable()
{
public void run()
{
//doStuff
}
};
我真的不明白这段代码在做什么。
run方法如何与类的实例关联?
我用谷歌搜索“Runnable”,发现它是一个接口(interface)。我是否通过在大括号之间声明run方法来实现接口(interface)?可以为java中的任何接口(interface)完成此操作吗?
我可以使用一些链接/解释。谢谢!
最佳答案
这是一个匿名内部类,正在实现Runnable
接口(interface)。是的,您可以用这种方式实现任何接口(interface),尽管在某些情况下您会或不会这样做(在“不会”列中缺少可重用性是一个很大的原因),这是有原因的。有关匿名类here的更多信息,但这基本上是一种方便的形式:
// Define it
class Foo implements Runnable
{
public void run()
{
// Do stuff
}
}
// And then use it
Runnable runnable = new Foo();
...提供的
Foo
是内部(或“嵌套”)类。有关嵌套类here的更多信息。关于Java可运行问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4299461/