在Java中过度使用get()是否效率低下?
我想知道在对象上过度使用get()或将get()的返回存储在变量中并使用它是否更有效。例如,这样做是否更有效:在Java中过度使用get()是否效率低下?,java,get,set,Java,Get,Set,我想知道在对象上过度使用get()或将get()的返回存储在变量中并使用它是否更有效。例如,这样做是否更有效: someObject.setColor(otherObject.getColor().r, otherObject.getColor().g, otherObject.getColor().b); 或者将它存储在这样的变量中 Color color = otherObject.getColor(); someObject.setColor(color.r, col
someObject.setColor(otherObject.getColor().r, otherObject.getColor().g,
otherObject.getColor().b);
或者将它存储在这样的变量中
Color color = otherObject.getColor();
someObject.setColor(color.r, color.g, color.b);
选项1:按照示例1编写代码
- java运行时可能会优化代码,也可能不会优化代码(将其转换为类似于示例2的内容)
- 难懂
- 不依赖于java运行时的优化
- 易读
您只创建对原始对象的引用,因此没有使用任何可观的“额外”内存。此外,它更具可读性,因此+1例如#2无论什么东西最高效,我很确定选择最低效的东西永远不会是您编写任何代码的主要瓶颈。我不知道从性能的角度看效率,但从可读性(和键入)的角度看,第二种方法更好。您能解释为什么在选项2中它不依赖于java运行时的优化吗?@someFolk选项1中可能的优化是对
otherObject.getColor()
的调用只执行一次,返回的对象存储在临时变量中。java运行时可以为您这样做,或者您可以像选项2中那样显式地为自己这样做。
Color color = otherObject.getColor();
someObject.setColor(color.r, color.g, color.b);