int ou Integer? Parece a mesma coisa até o null aparecer
- #Java
Leia. Curta. Comente. Compartilhe.
...
int e Integer conseguem guardar números inteiros, mas isso não significa que sejam a mesma coisa. Essa diferença começa pequena e aparece bastante quando você avança no Java.
...
Afinal, qual é a diferença?
Olha esses dois códigos:
int idade = 25;
Integer quantidade = 10;
Os dois guardam números inteiros.
Mas existe uma diferença importante:
int é um tipo primitivo.
Integer é um objeto e pode receber null.
Por exemplo:
Integer idade = null;
Funciona.
Agora isso:
int idade = null;
Não funciona.
Pensa em um cadastro
Imagine que você está fazendo um sistema e a idade não é obrigatória.
A pessoa preenche:
Nome: Ana
Idade:
Ela simplesmente não informou a idade.
Nesse caso, usar:
Integer idade;
permite que o valor seja null.
É por isso que você vai encontrar bastante Integer, Long, Double e outros tipos parecidos quando começar a trabalhar com DTOs, entidades, APIs e banco de dados.
E tem uma pegadinha
Olha isso:
Integer quantidade = null;
int total = quantidade;
O Java tenta transformar aquele Integer em int.
Só que não existe número ali.
Resultado:
NullPointerException entrando em cena para alegrar o dia do dev kkk.
Então uma dica simples é:
se estiver usando Integer, lembre que ele pode ser null.
Antes de sair fazendo contas com ele, vale conferir:
if (quantidade != null) {
System.out.println(quantidade);
}
E qual eu uso?
Para quem está começando, dá para pensar assim:
Se o valor sempre precisa existir, um primitivo pode fazer sentido:
int tentativas = 0;
Se o valor pode não existir, você provavelmente vai encontrar um Wrapper:
Integer idade = null;
Não precisa sair trocando todos os seus int por Integer.
O importante é entender o que aquele dado representa.
Fica a dica para quem está começando
Quando encontrar essas duplas:
int → Integer
long → Long
double → Double
boolean → Boolean
não pense que o Java simplesmente resolveu criar dois nomes para complicar sua vida kkk.
Os primeiros são tipos primitivos. Os segundos são conhecidos como Wrapper Classes e podem ser usados como objetos.
Você vai entender várias outras diferenças conforme avançar. Por enquanto, lembrar do null já vai evitar bastante confusão.
>> E você, quando começou no Java também achava que int e Integer eram praticamente a mesma coisa?
__
Indicação de livro
Java: Como Programar, de Paul Deitel e Harvey Deitel
É uma boa referência para ir consultando conforme aparecem dúvidas sobre tipos, objetos e os fundamentos do Java.



