1

次のようなメソッドがあるとします。

public int a() {
   return 1 + b();
}

b()呼び出し元が呼び出し先でメソッド b を実際に呼び出すように、Eclipse で「パラメーターの導入」リファクタリングを式に適用することは可能ですか? このような:

o.a()         // old
o.a( o.b() )  // new

私がそれを行うと、基本的に文字列「b()」をコピーして呼び出しに貼り付けますが、このメソッドは呼び出し元ではなく呼び出し先にあるため、原因がわかりません。しかし、多分あなたはトリックを知っていますか?

または、代わりに、「Change Method Signature」リファクタリングを使用して、呼び出し先を参照するデフォルト値で式を使用することは可能ですか? で新しいパラメータを作成しa()、デフォルト値を次のように設定できるようにするには、${this}.b()?

4

1 に答える 1

2

これは間接的に行うことができます。

  1. インダイレクションを導入するo.a()(それを と呼びますa_tmp)
  2. a_tmpからreturn o.a()へのリファクタリングreturn o.a(o.b())
  3. 列をなしてa_tmp
于 2012-04-12T10:51:15.367 に答える