我目前正在学习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/

10-13 07:22