Bonjour,
pourquoi une tel déclaration ne passe pas
MerciCode:byte b1 = new byte();
Version imprimable
Bonjour,
pourquoi une tel déclaration ne passe pas
MerciCode:byte b1 = new byte();
Salut,
byte est un type, Byte est la classe associée, comme int et Integer.
Code:
1
2
3
4
5
6
7 Byte b1 = new Byte(...); byte b2 = ... int a1 = 0; Integer a2 = new Integer("0");
si je metceci me déclare un seul byte ???Code:Byte b1 = new Byte("0");
Pas vraiment, car tu as toujours un pointeur this qui est rajouté pour un objet, je dirai plutôt un byte + un int
le type byte :
byte b1 = 0;
le wrapper byte :
Byte b2 = new Byte(0);
Quelques actions autorisées (à prendre indépendamment) :
b2 = null;
b2 = b1;
b1 = b2;
b2 = Byte.valueOf("0");
b1 = Byte.valueOf("0");
Une action non-autorisée :
b1 = null
Oui. Ça va parser "0" comme un nombre, voir que c'est le nombre zéro, et en conséquence construite un Byte égal à zéro.
De la même manière new Byte("28") construirait le Byte égal à 28.
Exactement comme ce que dit la Javadoc du constructeur Byte(String), soit dit en passant...
Au lieu de new Byte("0"), on préférera toujours utiliser Byte.valueOf("0") qui renverra toujours le même byte mis en cache, contrairement au constructeur qui construira des instances encore et encore au fur et à mesure des appels.