我已经看过很多次了:
public class MyApp extends SomeLibrary
{
public static void main(String[] args)
{
MyApp app = new MyApp();
app.run();
}
}
而不是:
MyApp app = new MyApp();
app.run();
为什么不这样做:
(new MyApp()).run();
当a)垃圾收集存在时,b)显然在public static void main
内没有其他任何东西可以运行,而c)app
显然不会被再次引用?
答案 0 :(得分:4)
当可读性不受影响时,第二个是有意义的 - 典型的例子:
new Thread(someRunnable).start();
答案 1 :(得分:2)
是的,如果您的申请中没有其他内容,您可以将其作为
(new MyApp()).run();
但通常情况下,应用程序稍微复杂一些,并且您将实例分配给变量,因为您要进行初始化。
答案 2 :(得分:1)
除了可读性之外,两种方式之间没有区别:一些IDE实际上建议用后者替换前者。我其实更喜欢new MyApp().run();
。