创建对象时是否应该创建一个变量来调用单个方法?

时间:2013-08-16 18:31:47

标签: java

想象一下我们需要为单个方法调用创建一个对象的场景。以下哪项是更好的编码实践以及原因:

  1. 将对象放在变量中:

    Foo foo = new Foo();
    int val = foo.getVal();
    

    优势:在异常处理的情况下,我们可以将构造函数中的异常与getVal()函数中的异常隔离开来。
    缺点:一个额外的变量。

  2. 直接在结果上调用方法:

    int val = new Foo().getVal();
    

    优势:不需要额外的变量 缺点:如果发生异常,则更难以确定构造函数或方法是否抛出异常。

2 个答案:

答案 0 :(得分:3)

如果您确实不需要参考,请使用选项二。它可以让垃圾收集器更快地回收内存。

另一方面,如果你真的不需要引用,那么你的方法可能应该是static。我知道每当我在生产环境中看到类似new Foo().getVal()的内容时,我立即转到getVal()定义并查找所有引用。百分之九十九,它应该是static方法。

答案 1 :(得分:1)

由于JIT进行了优化,他们很可能具有相同的性能。总的来说,第二种选择更具可读性和简洁性。