[Java] de l'utilisation des byte

de l'utilisation des byte [Java] - Java - Programmation

Marsh Posté le 22-07-2002 à 11:07:54    

voilà mon blème, c'est que j'utilise des byte, et quand on affecte une valeur numérique à un byte ça fait comme quand on affecte une valeur décimale à un float.
Genre si je fais    byte b = 3 ;
 
possible loss of precision
found   : int
required: byte
 
alors j'ai essayé :
byte b = 3b ;
byte b = 3B ;
 
mais marche pas donc je suis obligé de mettre :
byte b = (byte) 3 ;
 
Mais je trouve ça un peu lourd, donc si qq'un avait une idée ...


Message édité par bobuse le 24-07-2002 à 14:43:58
Reply

Marsh Posté le 22-07-2002 à 11:07:54   

Reply

Marsh Posté le 22-07-2002 à 11:19:25    

C'est bizzare ton affaire. Je viens de me compiler un programme test et ça marche impec. :heink:

Reply

Marsh Posté le 22-07-2002 à 11:20:11    

Code :
  1. public class ByteTest {
  2. public ByteTest() {}
  3. public static void main(String[] args) {
  4.  byte b = 8;
  5.  System.out.println(b);
  6. }
  7. }


---------------
Le site de ma maman
Reply

Marsh Posté le 22-07-2002 à 11:27:51    

ok, d'accord, comme ça ça marche !
 
Mais  

Code :
  1. public class ByteTest {
  2. public ByteTest() {}
  3. public void arghh(byte b) {}
  4. public static void main(String[] args) {
  5. arghh(5);
  6. }
  7. }

 
 
La je suis formel, ça ne marche pas !  :D  
T'es obligé de faire arghh((byte)5);

Reply

Marsh Posté le 22-07-2002 à 11:29:52    

de même que :  

Code :
  1. public class ByteTest {
  2. public ByteTest() {}
  3. public static void main(String[] args) {
  4. byte b = 8;
  5. byte b2 = b + 2;
  6. System.out.println(b);
  7. }
  8. }

 
va aussi faire gueuler javac !

Reply

Marsh Posté le 22-07-2002 à 11:34:03    

Effectivement. Il force le typage du bloc "+ 2" à int. Tu es donc forcé de caster. Tu n'as hélas (enfin, bon) pas le choix.


---------------
Le site de ma maman
Reply

Marsh Posté le 23-07-2002 à 10:51:08    

ce qui est même bizarre je trouve, quoique je veux bien comprendre qu'il recaste quand il a envie, mais bon ...
 
 

Code :
  1. byte b1=3;
  2. byte b2=b1+(byte)2;

 
 
Ca non plus il en veut pas !
 
Si quelqu'un avait des infos précise la dessus (doc.), je suis bien curieux d'en savoir plus !


Message édité par bobuse le 23-07-2002 à 10:51:35
Reply

Marsh Posté le 23-07-2002 à 11:09:39    

+1


---------------
Le site de ma maman
Reply

Marsh Posté le 24-07-2002 à 14:45:05    

et du coup c'est quoi le mieux :
 

Code :
  1. byte b2=(byte)(b1 + (byte)2);

 
ou
 

Code :
  1. byte b2=(byte)(b1 + 2);

Reply

Marsh Posté le 26-07-2002 à 09:43:28    

[:juanetfanny]


Message édité par bobuse le 26-07-2002 à 09:43:51
Reply

Marsh Posté le 26-07-2002 à 09:43:28   

Reply

Marsh Posté le 26-07-2002 à 09:54:40    

bobuse a écrit a écrit :

ok, d'accord, comme ça ça marche !
 
Mais  

Code :
  1. public class ByteTest {
  2. public ByteTest() {}
  3. public void arghh(byte b) {}
  4. public static void main(String[] args) {
  5. arghh(5);
  6. }
  7. }

 
 
La je suis formel, ça ne marche pas !  :D  
T'es obligé de faire arghh((byte)5);




 
Bin et alors. C'est normal. Qd tu vois 5 de manière absolue, quel type te vient à l'esprit en premier? un entier ou un byte ?
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 26-07-2002 à 09:56:00    

bobuse a écrit a écrit :

ce qui est même bizarre je trouve, quoique je veux bien comprendre qu'il recaste quand il a envie, mais bon ...
 
 

Code :
  1. byte b1=3;
  2. byte b2=b1+(byte)2;

 
 
Ca non plus il en veut pas !
 
Si quelqu'un avait des infos précise la dessus (doc.), je suis bien curieux d'en savoir plus !




 
le + java n'a pas la meme signification qu'en C hein! Et de manière générale un nombre entier dans l'absolu est toujours considéré comme un entier (ce qui est logique)


---------------
Just because you feel good does not make you right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed