Réponse tardive, mais je pense que cela ajoute quelque chose de nouveau à ce sujet.
Aucune des réponses précédentes n'a répondu à la question d'origine. Certains ont tenté de justifier l'absence de constante, tandis que d'autres ont montré comment nous pouvons faire face à l'absence de constante. Mais personne n'a fourni de justification convaincante au bénéfice de la constante, de sorte que son manque n'est toujours pas correctement expliqué.
Une constante serait utile car elle éviterait que certaines erreurs de code ne passent inaperçues.
Supposons que vous ayez une grande base de code avec des centaines de références à "". Quelqu'un en modifie un en faisant défiler le code et le change en "". Un tel changement aurait de fortes chances de passer inaperçu en production, auquel cas il pourrait provoquer un problème dont la source sera difficile à détecter.
OTOH, une constante de bibliothèque nommée EMPTY, si elle est sujette à la même erreur, générerait une erreur de compilation pour quelque chose comme EM PTY.
Définir sa propre constante est encore mieux. Quelqu'un pourrait encore modifier son initialisation par erreur, mais en raison de sa large utilisation, l'impact d'une telle erreur serait beaucoup plus difficile à passer inaperçu qu'une erreur dans un cas d'utilisation unique.
C'est l'un des avantages généraux que vous obtenez en utilisant des constantes au lieu de valeurs littérales. Les gens reconnaissent généralement que l'utilisation d'une constante pour une valeur utilisée dans des dizaines d'endroits vous permet de mettre facilement à jour cette valeur en un seul endroit. Ce qui est moins souvent reconnu, c'est que cela empêche également que cette valeur ne soit accidentellement modifiée, car un tel changement apparaîtrait partout. Donc, oui, "" est plus court que VIDE, mais VIDE est plus sûr à utiliser que "".
Donc, pour revenir à la question d'origine, nous ne pouvons que spéculer que les concepteurs de langage n'étaient probablement pas conscients de cet avantage de fournir des constantes pour les valeurs littérales qui sont fréquemment utilisées. Espérons que nous verrons un jour des constantes de chaînes ajoutées en Java.
outputBlah = ""
, et il préfère probablementsomething == String.Empty
plussomething.Length > 0
aussi bien (vous sautez un chèque nul.)