new className().methodName(); VS className ref = new className();

mus*_*gDC 7 java

我遇到了一个我的同事在eventListner其中使用的代码,它是:

private void someActionPerformed(java.awt.event.ActionEvent evt) {                                         
    new className().methodName(); //public class and public void methodName()
}    
Run Code Online (Sandbox Code Playgroud)

我很确定:

private void someActionPerformed(java.awt.event.ActionEvent evt) {                                         
    className ref = new className(); //public class and public void 
    ref.methodName();
}
Run Code Online (Sandbox Code Playgroud)

是比他更好的选择,因为前面的方法class每次调用它都会实例化.
我错了吗?任何建议表示赞赏,如果我错了,请纠正我 .

npi*_*nti 6

两者都做同样的事情,但是其中一个(第一个)短一行.

当您需要经过2-3个以上的对象时,通常建议使用您的方法,因此new Foo().getBar1().getBar2().doStuff()通常不建议这样做,因为它会降低为意大利面条代码并妨碍代码的可理解性.

  • @mustangDC:不,在这两种情况下,创建的对象将在执行步骤超出方法范围时进行垃圾收集. (2认同)