de l'utilisation des byte [Java] - Java - Programmation
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.  
 
Marsh Posté le 22-07-2002 à 11:20:11
| Code : 
 | 
Marsh Posté le 22-07-2002 à 11:27:51
ok, d'accord, comme ça ça marche ! 
 
Mais  
| Code : 
 | 
  
 
La je suis formel, ça ne marche pas !   
  
T'es obligé de faire arghh((byte)5);
Marsh Posté le 22-07-2002 à 11:29:52
de même que :
| Code : 
 | 
  
va aussi faire gueuler javac !
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.
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 : 
 | 
  
 
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 !
Marsh Posté le 24-07-2002 à 14:45:05
et du coup c'est quoi le mieux : 
 
| Code : 
 | 
  
ou 
 
| Code : 
 | 
Marsh Posté le 26-07-2002 à 09:54:40
| bobuse a écrit a écrit  : ok, d'accord, comme ça ça marche ! Mais 
    | 
 
 
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 ? 
 
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 ... 
    | 
 
 
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)
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