J'ai une charge entière appels de méthode comme ceci:Remplacer beaucoup de méthode similaire appelle à simple appel à la méthode arité variables
thing.doOneThing(a);
thing.doOneThing(b);
thing.doOneThing(c);
thing.doOneThing(d);
// ... etc
Mais la classe Thing
a une méthode doManyThings
équivalente, donc cela pourrait être réécrite :
thing.doManyThings(a, b, c, d /* etc */);
Quelle est la bonne façon de faire ce refactoring dans intellij?
Je l'ai utilisé pour faire des remplacements de structure:
- Remplacer
$t$.doOneThing($a$); $t$.doOneThing($b$);
avec$t$.doManyThings($a$, $b$);
- Remplacer
$t$.doManyThings($a$); $t$.doOneThing($b$);
($a$
ayant multiplicité infinie) avec$t$.doManyThings($a$, $b$);
- Remplacer
$t$.doManyThings($a$); $t$.doManyThings($b$);
($a$
et$b$
ayant multiplicités infinies) avec$t$.doManyThings($a$, $b$);
Je dois continuer à faire la dernière étape encore et encore, car il fusionne des paires d'instructions correspondantes, donc cela réduit de moitié le nombre d'appels à doManyThings
à chaque fois, et il doit être fait quelques fois pour les fusionner tous .
Cela semble plus difficile que cela devrait être - s'il vous plaît pouvez-vous me montrer le meilleur moyen de réaliser cela? :)