java:匿名类

时间:2012-11-13 07:49:49

标签: java anonymous-class

在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();

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

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

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