Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida em relação aos construtores de algumas classes Wrappers

Oi,

Bem, todos sabem que podemos criar um Integer, por exemplo, de algumas formas:

1) Passando o valor pelo construtor, recebendo ou não parâmetros:

Integer x = new Integer();
Integer y = new Integer(200);

2) Recebendo valor de tipos primitivos:

int x = 10;
Integer a = x;

3) Recebendo diretamente, como se fosse a inicialização em um tipo primitivo:

Integer a = 10;

Esse 3º tipo de inicialização é meio confuso para mim... Alguém pode exemplificar e explicar como isso é "feito por trás dos panos"?

E como eu posso aplicar essa "forma de inicialização" as minhas classes, caso eu encontre algo semelhante onde eu possa adicionar isso?

Uma boa observação é ver que a classe String também tem essa "propriedade":

String a = "Example";
2 respostas
solução!

Oi Leonardo,

Quando você faz Integer a = 10, o que realmente acontece é Integer a = Integer.valueOf(10). Um jeito interessante de tirar essas dúvidas é executando o comando javap passando como argumento o arquivo .class. Por exemplo:

javap -v TesteInteger

Agora faz sentido, vi também que algumas coisas são feitas de forma "engessada" pelo próprio compilador, então não conseguimos realizar essas operações para as nossas classes.

Mas obrigado!