Si j'ai une méthode
void f(byte b);
comment puis-je l'appeler avec un argument numérique sans casting ?
f(0);
donne une erreur.
Si j'ai une méthode
void f(byte b);
comment puis-je l'appeler avec un argument numérique sans casting ?
f(0);
donne une erreur.
Vous pouvez utiliser un octet littéral en Java... en quelque sorte.
byte f = 0;
f = 0xa;
0xa
(littéral int) est automatiquement converti en octet. Ce n'est pas un vrai littéral d'octet (voir JLS et les commentaires ci-dessous), mais si ça fait coin-coin, j'appelle ça un canard.
Ce que vous ne pouvez pas faire, c'est ça :
void foo(byte a) {
...
}
foo( 0xa ); // will not compile
Vous devez faire le casting comme suit :
foo( (byte) 0xa );
Mais gardez à l'esprit qu'elles seront toutes compilées et qu'elles utilisent des "octets littéraux" :
void foo(byte a) {
...
}
byte f = 0;
foo( f = 0xa ); //compiles
foo( f = 'a' ); //compiles
foo( f = 1 ); //compiles
Bien sûr, cela se compile aussi
foo( (byte) 1 ); //compiles
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.