0

我使用 IDE Eclipse 来编写 Java 代码。我有一个这样的类结构:

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

class ItemId {/*just some class*/}

我也有一个使用 ItemId 恢复 Item 的实用方法,该方法具有以下签名:

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

选择utilityMethod(ItemId id),右键单击,然后选择重构 > 更改方法签名。选择选项以保留原始方法并弃用它。您最终会使用这两种方法,UtilityClass并且由于弃用,原始调用者将被标记。然后,您可以使用上面的正则表达式选项,或者只使用弃用警告来随着时间的推移进行迁移。

于 2012-05-07T14:41:33.227 回答
0

使用正则表达式文本搜索和替换来替换:

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

然后手动修复方法签名。

于 2012-05-07T14:31:10.723 回答