Java方法参数:缓存结果与直接调用
我很难准确地描述我在主题中的意思,所以让我们坚持这个例子 给出了一组假设的方法Java方法参数:缓存结果与直接调用,java,methods,Java,Methods,我很难准确地描述我在主题中的意思,所以让我们坚持这个例子 给出了一组假设的方法 Object firstObject(); Object secondObject(); void myMethod(Object o1, Object o2); 除了样式之外,下列代码之间是否有任何区别? // Code 1. myMethod(firstObject(), secondObject()); 我这样问主要是因为我遇到了一些非常长的代码行,因为代码1。类型的风格,我想知道这样写是否真的有什么好处。
Object firstObject();
Object secondObject();
void myMethod(Object o1, Object o2);
除了样式之外,下列代码之间是否有任何区别?
// Code 1.
myMethod(firstObject(), secondObject());
我这样问主要是因为我遇到了一些非常长的代码行,因为
代码1。
类型的风格,我想知道这样写是否真的有什么好处。如果你问重构一个变量的方法调用结果是否有任何开销,那么答案是否定的。
选项1的一个重要优点是更好的可读性和轻松使用调试器的能力
下面是一个同样问题的更深入的例子:
重要部分是:
为了回答您的问题,这在对象分配方面没有任何区别,因此GC影响也没有区别
我认为像code1这样做的唯一好处是,您不需要将
firstObject()
和secondObject()
分配给任何对象。因此,这取决于您是否需要调用myMethod
// Code 2.
Object o1 = firstObject();
Object o2 = secondObject();
myMethod(o1,o2);