Por que apenas f , g , h estao certas ?? Por as outras estao erradas??
class A {
public static void main(String[] args) {
final short s1 = 1; // 1
final char c1 = 1; // 2
byte b1 = s1; // 3
byte b2 = c1; // 4
byte b3 = 1; // 5
byte b4 = 1L; // 6
byte b5 = 1.0; // 7
byte b6 = 1.0d; // 8
}
}
What is the result of attempting to compile the program?
a. Compiler error at 1
b. Compiler error at 2
c. Compiler error at 3
d. Compiler error at 4
e. Compiler error at 5
f. Compiler error at 6
g. Compiler error at 7
h. Compiler error at 8
i. Runtime error.
j. None of the Above
Acho que vc nao pode colocar um Long dentro de um Byte, assum como um Double em um Byte. Só por isso… Perde a precisao. Vc quer inserir 300 onde cabe 30, ain nao da…
[quote=“New__Radical”]O compilador irá fazer uma conversão implicita, se o operando da direita for uma constante e tiver um valor permitido pelo operando da esquerda.
[code]final char a = 100;
byte b = a; //Ok!!! a é um valor constante e 100 está dentro do permitido para byte.
char c = 1;
byte d = c; // ERRO
final char e = 234;
byte f = e; //ERRO
[/code][/quote]