Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que usar intValue()?

N o exemplo da aula podemos ver que quando se tenta instanciar um Integer usando seu construtor o metodo esta depreciado. Porém ao fazer o código

Integer idadeRef = Integer.valueOf(29); int valor = idadeRef;

o compilador não nos da nenhum aviso, é como se tudo já fosse funcionar de forma normal. O mesmo acontece no caso do valueOf da forma como esta nesse código que coloquei de exmplo, podemos fazer dessa forma:

Integer idadeRef = 29; int valor = idadeRef;

A impressão que tive é que fazer isso é o mesmo que fazer

double a = 2.0 double b = (double) a;

Existe algum beneficio em utilizarmos o int.Value quando queremos atribuir um Integer a um int? Nesse caso do valueOf tbm existiria algum beneficio em se utuilizar dessa forma?

1 resposta
solução!

Não existe beneficio não, são apenas o unboxing e autoboxing que o java faz automaticamente.

Quando voce faz desse formato: Integer idadeRef = Integer.valueOf(29);

voce está explicitando o que o java faz automaticamente atravez do autoboxing se escrevesse assim: Integer idadeRef = 29; Ao fazer de qualquer uma dessas 2 formas está correto pois ele utiliza o cache de objetos.

Se fizer com o construtor ele cria um novo objeto sempre, exemplo:

public static void main(String[] args) {

        Integer a = new Integer(1);
        Integer b = new Integer(1);

        System.out.println("a==b? " + (a==b));

        Integer c = Integer.valueOf(1);
        Integer d = Integer.valueOf(1);

        System.out.println("c==d? " + (c==d));

    }

ele dá a resposta:

a==b? false
c==d? true