Atribuir valor a uma variável short

Bom dia pessoal!!

Gostaria de tirar uma dúvida com vocês. Agradeço desde já quem puder ajudar.

Tenho uma parte de um código em Java em que preciso atribuir um valor a uma variável de tipo short;

A questão é: Qual das duas formas é melhor para fazer essa atribuição?

a = Short.parseShort("1");

ou

a = (short) 1;

Eu acredito que seja a segunda forma, mas um colega meu levantou a questão de que é melhor usar o Short.parseShort.

Gostaria, então, da opinião de vocês.

Obrigado!

Os dois são casos diferentes. O parseShort converte de String para short, o segundo caso converte de tipos primitivos para short.

Olá Bruno! Obrigado pela resposta.

Realmente, são casos diferentes, mas como estou explicitamente atribuindo um valor a uma variável short, tanto uma como a outra forma funcionam como desejado.

A questão é, qual das duas é melhor nesse caso?

Acho que trabalhar com um cast de um inteiro ao invés de dar parse numa string seria melhor, não?

Obrigado!

Ué… e voce não pode atribuir direto?

short x = 1;

[quote=fernandolobosp]Olá Bruno! Obrigado pela resposta.

Realmente, são casos diferentes, mas como estou explicitamente atribuindo um valor a uma variável short, tanto uma como a outra forma funcionam como desejado.

A questão é, qual das duas é melhor nesse caso?

Acho que trabalhar com um cast de um inteiro ao invés de dar parse numa string seria melhor, não?

Obrigado![/quote]

Não tem melhor, a diferença é de onde você está começando. Se tiver uma string na mão, use o parse; se tiver um tipo numérico, atribuia o valor diretamente.

Faça o que der menos trabalho.

[quote=Mark_Ameba]Ué… e voce não pode atribuir direto?

short x = 1; [/quote]

Olá Mark!!

É, na verdade não foi um bom exemplo o que eu dei. No meu caso, é um set de uma classe.

Então, se faço, por exemplo:

a.setShort(1);

Ele dá erro dizendo que não é o argumento esperado (espera short e recebe int). Aí ele pede pra dar um cast no valor.

Acho que ficou mais claro agora. :thumbup:

Bem, se no quesito performance, consumo, etc, não há muita diferença, vou ficar com o cast mesmo, pelo menos fica mais bonito, na minha opinião. :slight_smile:

Obrigado!!