2010-10-30 6 views
9

Also Java hat eine lange Typ-Suffix für Literale: (123L), ein Doppeltes Suffix (43.21D), ein Gleitkomma-Suffix (1.234F). Also ... warum kein Byte Typ Suffix? Wenn Sie zum Beispiel einen Testcode schreiben, MÜSSEN Sie alle Ihre Bytes umwandeln, wenn sie als Funktionsparameter verwendet werden.Warum hat Java kein Bytetyp-Suffix?

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

Es ist klar, dass B oder b würde nicht funktionieren, da es mit der Fähigkeit, ein Byte hexadezimal oder oktal (eine kritische Sprache-Funktion) zu spezifizieren. Widerspräche Aber ein anderer Brief, wie Z z? oder Y y (für BYte)?

+0

eine "subjektive und streitbare" enge Abstimmung ...? – BoltClock

+2

Was, wir sollten jetzt James Goslings Gedanken lesen? –

+1

Jemand sollte Microsoft dasselbe über ihre Sprachen fragen, zumal - anders als in C - kürzere Typen nicht zu ganzzahlig propagieren. – supercat

Antwort

8

sich die Frage, warum nicht wirklich beantworten, aber für das, was es wert ist, gab es einen Vorschlag für nur diese mit dem Y-Byte-Suffix im März 2009 vorgebracht für Bytes und S für kurze Hosen: Bereits Byte/short suffix proposal

+0

Interessanter Vorschlag, es adressiert auch die vorzeichenlosen Probleme, die mit Bytes verbunden sind. – Justin