Pourquoi est-il pas nécessaire de jeter explicitement dans le cas des entiers?

rajkumar.11:
byte a=10;
byte b=20;

b=a+b;

Dans ce cas, je dois convertir explicitement a+bà l' octet comme ceci:

b=(byte)(a+b);

Il est la même chose avec court:

short x=23;
short y=24;

Dans le cas contraire, il donne une erreur.

Mais dans le cas des entiers, il n'est pas nécessaire de convertir explicitement:

int p=7788;
int q=7668;

p=p+q;

Cela fonctionne très bien.

Pourquoi donc?

Nous ne devons pas explicitement jeter même dans le cas d'une longue aussi.

Mureinik:

Si vous regardez le JLS 4.2.2 Opérations Entier , il indique que le résultat d'une opération numérique entre deux opérandes entiers est un intou une long. Comme il n'y a pas de conversion implicite d'un intà byteou short, vous avez besoin d' un casting explicite.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=226660&siteId=1
conseillé
Classement