Vous avez raison dans vos présomptions que la plupart des inspections IntelliJ vous encouragent à faire les choses de façon "meilleure".
Cependant, ce n'est pas toujours le cas. Surtout lorsque certaines inspections fonctionnent «dans les deux sens» -> vous devrez exercer votre propre jugement sur ce qui est «meilleur».
Dans ce cas, si vous commencez avec une chaîne concaténée normale:
return "count: " + count + "\n";
Il y a quelques inspections disponibles - curseur mis sur "count: "
et appuyez sur Alt-Entrée:
- Remplacer « + 'avec String.format()
- Remplacer '+' avec StringBuilder.append()
- Remplacer '+' avec java.text.MessageFormat.format()
Si vous choisissez l'option (2), vous obtenez ceci:
return new StringBuilder().append("count: ").append(count).append("\n").toString();
Maintenant, vous pouvez utiliser alt-entrer à nouveau pour choisir "Remplacer StringBuilder avec la chaîne" inverser le changement.
Dans ce cas, vous avez découvert une inspection/refactoring bidirectionnelle: cela fonctionne dans les deux sens. D'autres refactorings (tels que "Encapsulate") ne fonctionnent que d'une seule façon.
Quant à ce qui est « meilleur » - vous devez peser les performances de StringBuilder
par rapport à la lisibilité et la simplicité, et faire ce jugement vous - IntelliJ est simplement fournir des inspections à portée de main pour vous aider;)
double possible de [ StringBuilder vs String concaténation dans toString() en Java] (https://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java) – Meo
Littéralement, juste googlé le titre ... – Meo