1
resposta

Tipo short - Qual a diferença de uma instrução para outra? O efeito não é o mesmo?


public static void main(String[] args) {

    short s = 2;
    s += 1; // compila
    s = s + 1; //não compila
}
1 resposta

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