-1

我们可以创建接口的引用,但不能创建对象。但是我们如何才能将 new Runnable() 传递给 Thread 构造函数。据我所知,音乐会 new Class_Name() 是对象。

Thread t = new Thread(new Runnable(){});
4

2 回答 2

3

这里使用的技巧称为匿名类。基本上,您正在创建一个实现Runnable.

更好的例子是:

Thread t = new Thread(new Runnable(){ 
   @Override
   public void run() {
       // Code here
   }
});
于 2013-09-28T10:51:36.063 回答
1

我们可以创建接口的引用,但不能创建对象

这不是真的。

ClassA classa = new ClassA(); 

这将为 ClassA 创建一个新实例,whileclassa是引用。

但是我们如何将 new Runnable() 传递给 Thread 构造函数

Thread t = new Thread(new Runnable(){});

这将创建一个线程的实例,t引用在哪里。新的 Runnable(){} 称为匿名类。因为创建了一个实例,所以引用被传递给了构造函数,但是你不能在后面的代码中引用这个。

但是使用这一行你应该得到一个编译错误。您必须覆盖 run 方法。

Thread t = new Thread(new Runnable(){
    @Override
    public void run(){
    }
});
于 2013-09-28T10:52:58.647 回答