2010-10-30 15 views
9

Quindi java ha un suffisso di tipo lungo per i letterali: (123L), un suffisso di tipo doppio (43.21D), un suffisso di virgola mobile (1.234F). Quindi ... perché nessun suffisso di tipo byte? Ad esempio, quando si scrive un codice di prova, è necessario eseguire il cast di tutti i byte quando vengono utilizzati come parametri di funzione.Perché java non ha un suffisso di tipo byte?

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

E 'chiaro che il tasto B o B non avrebbe funzionato in quanto sarebbe in contrasto con la possibilità di specificare un byte in formato esadecimale o ottale (una caratteristica del linguaggio critico). Ma qualche altra lettera, come Z z? o Y y (per bYte)?

+0

già uno "soggettivo e argomentativo" voto ravvicinato ...? – BoltClock

+2

Cosa, dovremmo leggere la mente di James Gosling adesso? –

+1

Qualcuno dovrebbe chiedere a Microsoft la stessa cosa delle loro lingue, soprattutto perché - a differenza di C - i tipi più corti non promuovono l'intero. – supercat

risposta

8

Questo in realtà non rispondere alla domanda del perché, ma per quello che vale, c'è stata una proposta avanzata nel marzo del 2009 proprio per questo con il suffisso byte di Y per byte e S per cortometraggi: Byte/short suffix proposal

+0

Proposta interessante, affronta anche i problemi non firmati associati ai byte. – Justin

Problemi correlati