Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中过度使用get()是否效率低下?_Java_Get_Set - Fatal编程技术网

在Java中过度使用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

我想知道在对象上过度使用get()或将get()的返回存储在变量中并使用它是否更有效。例如,这样做是否更有效:

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的内容)
  • 难懂
选项2:按照示例2编写代码

  • 不依赖于java运行时的优化
  • 易读
根据我的经验,运行时的差异可以忽略(如果不是在一个巨大的循环中执行,则无法衡量差异),但编写清晰易懂的代码才是最重要的


您只创建对原始对象的引用,因此没有使用任何可观的“额外”内存。此外,它更具可读性,因此+1例如#2

无论什么东西最高效,我很确定选择最低效的东西永远不会是您编写任何代码的主要瓶颈。我不知道从性能的角度看效率,但从可读性(和键入)的角度看,第二种方法更好。您能解释为什么在选项2中它不依赖于java运行时的优化吗?@someFolk选项1中可能的优化是对
otherObject.getColor()
的调用只执行一次,返回的对象存储在临时变量中。java运行时可以为您这样做,或者您可以像选项2中那样显式地为自己这样做。
Color color = otherObject.getColor();
someObject.setColor(color.r, color.g, color.b);