1l za długi, 1f za float, 1d za double, a co z bajtem?1l na długie, 1f na float, 1d na podwójne, a co z bajtem?
long l = 1l;
float f = 1f;
double d = 1d;
// byte b = 1?;
Co to jest równoważne dla byte
? Czy to istnieje?
1l za długi, 1f za float, 1d za double, a co z bajtem?1l na długie, 1f na float, 1d na podwójne, a co z bajtem?
long l = 1l;
float f = 1f;
double d = 1d;
// byte b = 1?;
Co to jest równoważne dla byte
? Czy to istnieje?
Nie, nie ma sufiksu, który można dołączyć do literału numerycznego, aby był to byte
.
Patrz 3.10 Literals w specyfikacji języka Java.
Trzeba oddać do bajta tak:
byte b = 1;
b = (byte) 5;
Ponieważ domyślnie te stałe numeryczne są traktowane jako int w Java.
Poza tym, że nie jest to konieczne w tym przypadku, ponieważ literał jest stałą czasu kompilacji. 'bajt b = 1;' jest całkowicie legalny. – Jesper
tak, 'bajt b = 1' działa poprawnie, niestety dla każdej innej operacji, ale inicjalizacja obsada jest znowu konieczna. Nawet pozornie nieszkodliwe 'b + = 1'. Rozumiem, że tak musi być, po prostu ... denerwujące jest rzucanie za każdym razem – GameDroids
nie ma przyrostek można dołączyć numeryczny dosłowne
Nie ma takiego przyrostek dla bajtach zobaczyć Java Language Specification section 3.10.1:
DecimalIntegerLiteral:
DecimalNumeral IntegerTypeSuffix(opt)
IntegerTypeSuffix: one of
l L
Uwaga (opt)
oznacza to jest opcjonalne. Aby przypisać, musisz jawnie rzucić za pomocą (byte) 1
.
Czy http://www.herongyang.com/Java/Byte-Data-Type-Implicit-Casting.html jakiejkolwiek pomocy? –