0

私は IDE Eclipse を使用して Java コードを書きます。私はこのようなクラス構造を持っています:

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

class ItemId {/*just some class*/}

また、ItemId によってアイテムを復元するユーティリティ メソッドもあり、メソッドには次のシグネチャがあります。

UtilityClass.utilityMethod(ItemId id);

したがって、次のような呼び出しがたくさんあります。

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

また

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

既に構築された Item オブジェクトを使用する新しいメソッドを書きたい:

UtilityClass.utilityMethod(Item item);

問題は次のとおりです

UtilityClass.utilityMethod(unpredictableItemName.getId())

UtilityClass.utilityMethod(unpredictableIdName)?
4

2 に答える 2

0

正規表現のテキスト検索と置換を使用して、以下を置換します。

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

次に、メソッドシグネチャを手動で修正します。

于 2012-05-07T14:31:10.723 に答える
0

を選択utilityMethod(ItemId id)して右クリックし、[リファクタリング] > [メソッド シグネチャの変更] を選択します。オプションを選択して、元のメソッドを保持し、非推奨にします。廃止されたため、両方のメソッドが作成され、元のメソッドUtilityClassの呼び出し元にフラグが付けられます。次に、上記の正規表現オプションを使用するか、非推奨の警告を使用して、時間をかけて移行できます。

于 2012-05-07T14:41:33.227 に答える