2012-05-07 6 views
0

私はIDE Eclipseを使用してJavaコードを読み込みます。eclipseとは別にメソッド呼び出しをどのように呼びますか?

UtilityClass.utilityMethod(ItemId id); 

ので、このような呼び出しがたくさんある:、方法は、署名、次のい

class Item 
{ 
    private ItemId id; 
    public ItemId getId() 
    { 
     return this.id; 
    } 
} 

class ItemId {/*just some class*/} 

は、私もそれがITEMIDで項目を復元してutily方法を持っている:私はこのようなクラス構造を持っています:

Item unpredictableItemName = ... 
UtilityClass.utilityMethod(unpredictableItemName.getId()); 

または

ItemId unpredictableIdName = ... 
UtilityClass.utilityMethod(unpredictableIdName); 

私はすでに構築されItemオブジェクトを使用する新しい方法を、書きたい:

UtilityClass.utilityMethod(Item item); 

そこで質問です:

UtilityClass.utilityMethod(unpredictableItemName.getId()) 

からの呼び出しを移動する方法

UtilityClass.utilityMethod(unpredictableIdName)? 
+2

質量番号がない場合は、古いメソッドを廃止または削除することができます。これは、発生が存在する日食で強調表示され、それらを1つずつ処理できます。 –

+0

私はこの方法を知っていますが、私の代わりにこれを行うことができる自動化されたものが必要です。 (1つ1つは本当に長く、エラーが発生しやすい)。 – Cherry

答えて

0

正規表現のテキスト検索とレプリカを使用する

UtilityClass.utilityMethod\((.*)\.getId\(\)\)UtilityClass.utilityMethod\(\1\)

とし、手動メソッドシグネチャを修正:CEは交換します。

+0

これは、UtilityClass.utilityMethod(variableName.getId())をUtilityClass.utilityMethod(1)に置き換えた後、varNameが使用されたことをどのように知るかを示しています(Itemタイプのvaiablesがある場合)。 – Cherry

+0

置換文字列が正しく入力されていることを確認してください。検索式の '(。*) 'の内容を参照する' \ 1'と打ちます。あなたは '\'を中断した可能性があります。このため、正規表現検索を使用しています(検索ダイアログの正規表現ボックスを確認してください)。 –

0

を選択し、右クリックして、[リファクタリング]> [メソッドシグネチャの変更]を選択します。元のメソッドを保持し、非推奨にするオプションを選択します。両方の方法がUtilityClassになり、元の呼び出し元には非推奨のためにフラグが立てられます。上記のregexオプションを使用するか、推奨されていない警告を使用して時間の経過とともに移行することができます。

+0

実際には彼のケースではうまくいきません(私はそれを試しました、あなたもそうするべきです)。 –

+0

@FrancisUpton、あなたはそうですが、途中降機になり、移行を助けることができます。それを反映する答えを更新しました。 downvoteを削除することを検討してください。 –

+0

問題はありません。 :) –

関連する問題