Est la concaténation avec une chaîne vide pour faire une chaîne de conversion vraiment si mauvais?

Disons que j'ai deux char variables, et plus tard je veux concaténer une chaîne de caractères. C'est comment j'allais le faire:

char c1, c2;
//...

String s = "" + c1 + c2;

J'ai vu des gens qui disent que la "" + "truc" est "moche", etc, et que vous devez utiliser String.valueOf ou Character.toString à la place. Je préfère cette construction parce que:

  • Je préfère l'utilisation d'une langue plutôt la fonction d'appel d'API si possible
    • En général, n'est pas la langue généralement plus stable que l'API?
    • Si le langage ne cache appel d'API, puis encore plus forte raison de le préférer!
      • Plus abstrait! Le masquage est bon!
  • J'aime que la c1 et c2 sont visuellement sur le même niveau
    • String.valueOf(c1) + c2 suggère quelque chose de spécial à propos de c1
  • C'est plus court.

Est-il vraiment un bon argument pourquoi String.valueOf ou Character.toString est préférable de "" +?


Anecdote: dans java.lang.AssertionError, la ligne suivante apparaît 7 fois, chacun avec un type différent:

    this("" + detailMessage);
  • Bien sûr String.valueOf(c1) + c2 serait bizarre, si vous allez dans cette voie, vous devez écrire String.valueOf(c1) + String.valueOf(c2)
  • vous pouvez écrire new String(new char[] {c1, c2})
  • ad Trivia: le Java SE bibliothèques de base ne sont pas exactement une fontaine de bon style d'écriture, c'est bien connu 😉
  • Sauer ouais c'est une autre façon de faire. Je voulais juste faire remarquer qu'il est un peu absurde de convertir un mais pas l'autre. Il serait, comme l'OP dit à juste titre, à tort suggérer que quelque chose de spécial qui se passe.
  • Regardez ici pour une question connexe: stackoverflow.com/questions/1572708/...