5

次のシナリオがあります..そして、同様のシナリオに何度も遭遇します。次の 2 つのオプションのうち、どちらがより好ましいですか?

オプション1:

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

オプション-2:

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

どちらがより好ましいか、および/または良い習慣ですか?

4

5 に答える 5

4

Imhoメソッドを2回呼び出すことを回避しているため、2番目の方が優れていgetDetails(...) ます。

于 2013-07-12T11:06:41.283 に答える
1

オプション 2:優れている

オプション 1:余分なメソッド呼び出しが発生するため、getter メソッド (何かを返すワンライナー メソッド) でない限り、そのようなケースは常に回避する必要があります。getDetails(...)

マイクロ最適化まで掘り下げると、メソッド呼び出しは通常、

  • メソッド変数のスタックの割り当て
  • 命令セットのジャンプ

これは多くのオーバーヘッドのカップルです。多くの人が言うように、このようなパフォーマンスの最適化はコンパイラーに任せるべきであり、コードはより読みやすいように書かれるべきです。

于 2013-07-12T11:15:51.653 に答える