1

在java中这是有效的

new Thread(new Runnable()
    {   
        public void run()
        {
            for(int i=0;i<5;i++)
                System.out.println("From anonymous:"+i);
        }
    }   
).start();

但这不是:

Thread t=new Thread(new Runnable()
    {   
        public void run()
        {
            for(int i=0;i<5;i++)
                System.out.println("From anonymous:"+i);
        }
    }   
).start();

我可以用匿名类来实现吗?如果是,那么如何

4

3 回答 3

8

您的代码不起作用,因为它想将start()方法的结果分配给变量t。你可以这样做:

Thread t=new Thread(new Runnable()
    {   
        public void run()
        {
            for(int i=0;i<5;i++)
                System.out.println("From anonymous:"+i);
        }
    }   
);
t.start();
于 2012-11-13T07:51:10.243 回答
3

此外,在这种情况下,您不需要使用 Runnable 接口,因为它是由 Thread 类实现的。

    new Thread() {
        @Override
        public void run() {
            for(int i=0;i<5;i++)
               System.out.println("From anonymous:"+i);
        }
    }.start();
于 2012-11-13T08:45:56.570 回答
1

这里需要注意的一点是Thread的start方法返回 void。这就是为什么您不能将其分配给变量的原因。

于 2012-11-13T09:04:44.797 回答