我有以下情况..而且我多次遇到类似情况。以下两个选项中哪一个更可取?

选项1:

String result = ( getDetails(...) == null ) ? "" : getDetails(...);

选项2:
String returnValue = getDetails(...);
String result = ( returnValue == null ) ? "" : returnValue;

哪个是更可取的和/或良好的做法。

最佳答案

选项2:更好

选项1:导致额外的方法调用,因此应始终避免使用,否则应避免使用,除非getDetails(...)是一种 setter/getter 方法(一种返回某些内容的线性方法)

如果您深入研究微优化,通常会导致方法调用

  • 为方法变量
  • 分配堆栈
  • 跳转指令集

  • 这是许多间接费用中的几个。 As many say,这种性能优化应该留给编译器,并且代码应该被编写为更具可读性。

    10-04 14:24