我知道有很多不同的方法可以创建一个instance
的{{1}},我对其中很多都不了解,但我刚刚见过这种定义。
我甚至不确定它是否正在制作一个新的class
!
很少有误解,我不能很好地消化它。
任何人都可以解释下面的代码吗?
instance
上面的那个和下面的一个有什么区别吗?只要他们相同,你更喜欢哪一个?
new timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
...
}
}, 0, 1000);
答案 0 :(得分:1)
这个有什么不同吗?只要有相同的, 你更喜欢哪一个?
首先,我想指出@Carcigenicate在评论中所说的内容。
"除非timer()是a,否则我不希望第一个编译 构造函数,在这种情况下两者是相同的。"
我认为这是一个错误,您打算将Timer()
写为构造函数调用。
下面的代码创建了一个Timer
类型的匿名对象,当你想在那里执行某个任务但是不希望使用Timer
对象时这很好用再次。基本上,您将无法在以后的代码中重新使用该对象。
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
...
}
}, 0, 1000);
下面的代码与上面的代码相同,不同之处在于此代码不是匿名object
,而我们稍后可以在代码中重复使用object
。
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
...
}
}, 0, 1000);
只要他们相同,你更喜欢哪一个?
这实际上取决于具体情况和情况,但如果我选择的话,我会选择第二个,原因如上所述。