我有一大堆这样的方法调用:
thing.doOneThing(a);
thing.doOneThing(b);
thing.doOneThing(c);
thing.doOneThing(d);
// ... etc
但是Thing
该类有一个等效的doManyThings
方法,因此可以将其重写为:
thing.doManyThings(a, b, c, d /* etc */);
在 intellij 中进行这种重构的正确方法是什么?
我一直在使用结构替换来做:
- 替换
$t$.doOneThing($a$); $t$.doOneThing($b$);
为$t$.doManyThings($a$, $b$);
- 将
$t$.doManyThings($a$); $t$.doOneThing($b$);
($a$
具有无限重数)替换为$t$.doManyThings($a$, $b$);
- 将
$t$.doManyThings($a$); $t$.doManyThings($b$);
($a$
并$b$
具有无限重数) 替换为$t$.doManyThings($a$, $b$);
我必须一遍又一遍地做最后一步,因为它合并了成对的匹配语句,所以这只是将doManyThings
每次调用的次数减半,并且需要执行几次才能将它们全部合并。
这感觉比它应该的更难 - 请你能指出实现这一目标的超级明显的更好方法吗?:)