Olá !!
Por que a “linha 1” gera erro e a “linha 2” não ?
Short s = new Short((short)2 + (short)4); //linha 1
short a =((short)2 + (short)4); //linha2
Na “linha 1” o construtor da classe Short recebe dois valores inteiros e estes são
convertidos para o tipo short. A soma de dois valores do tipo short resulta em um valor do tipo int.
Um dos Construtores de short pede um valor do tipo short e no exemplo acima o valor passado é do tipo int.
Até ai eu entendi
Na “linha 2” temos dois valores do tipo int que são convertidos para short. A soma de dois
valores shorts resulta em um valor do tipo int. A variável “a” está recebendo um valor do tipo int e
não está gerando erro.
Não entendi
até mais !!