public static void main(String[] args) {
short s = 2;
s += 1; // compila
s = s + 1; //não compila
}
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
public static void main(String[] args) {
short s = 2;
s += 1; // compila
s = s + 1; //não compila
}
Olá Flávio,
A soma de dois tipos inteiros sempre retornará um int. A primeira expressão compila, pois um casting automático é realizado. Assim, a expressão s += 1 é transformada em (short) (s + 1) . Mais detalhes podem ser encontrados aqui: http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.26.2