2010-10-30 19 views
9

So java a un suffixe de type long pour les littéraux: (123L), un suffixe de type double (43.21D), un suffixe flottant (1.234F). Alors ... pourquoi pas de suffixe de type byte? Par exemple, lorsque vous écrivez un code de test, vous devez convertir tous vos octets lorsqu'ils sont utilisés en tant que paramètres de fonction.Pourquoi java n'a pas de suffixe de type byte?

ByteBuffer b = ByteBuffer.allocate(100); 
b.put((byte)3); // super annoying 
b.put(3b);  // if only 

Il est clair que l'utilisation B ou b ne fonctionnerait pas car il serait en conflit avec la possibilité de spécifier un octet en hexadécimal ou octal (une caractéristique de langage critique). Mais une autre lettre, comme Z z? ou Y y (pour bYte)?

+0

Déjà un vote de clôture «subjectif et argumentatif» ...? – BoltClock

+2

Quoi, nous sommes supposés lire l'esprit de James Gosling maintenant? –

+1

Quelqu'un devrait demander à Microsoft la même chose au sujet de leurs langues, d'autant plus que - contrairement à C - les types plus courts ne favorisent pas les nombres entiers. – supercat

Répondre

8

Cela ne répond pas vraiment à la question de savoir pourquoi, mais pour ce que ça vaut, il y avait une proposition présentée en Mars 2009 pour seulement cela avec le suffixe octet Y pour les octets et S pour les courts métrages: Byte/short suffix proposal

+0

Proposition intéressante, elle aborde également les problèmes non signés associés aux octets. – Justin