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

Substituir atributos de tipo primitivos pelos Wrapper

É considerado uma boa prática substituir nossos atributos de tipo primitivos pelos do tipo Wrapper? Isto é, usar somente do tipo Wrapper?

2 respostas

Boa noite Matheus.

Normalmente utiliza-se os tipo primitivos, mas isso pode variar conforme a situação.Como é demonstrado na aula os Wrappers são utilizados para indicar o tipo primitivo como objeto, isso é util pois permite que você passe ele para métodos ou conjuntos, como a List, que recebem apenas objetos, outra utilidade dos Wrappers é a possibilidade de realizar o parsing.

solução!

Oi Matheus, tudo bem?

Embora os wrappers estejam mais alinhados ao conceito de Orientação a Objetos, a escolha do que utilizar para seguir as boas práticas varia dependendo da situação. Por uma questão até de performance, a ideia mais aceita é dar preferência a tipos primitivos, usando wrappers apenas quando necessário.

Nesse exemplo, foram feitas buscas em um array com 5 milhões de elementos, sendo todos iguais com exceção do último. Comparando a performance de tipos primitivos com classes wrappers fica claro a diferença de performance, mesmo se tratando de uma tarefa simples.

Fonte: https://www.baeldung.com/java-primitives-vs-objects

Mas, então, em quais situações é recomendável usar tipos primitivos e em quais devemos usar wrappers?

Tipos primitivos, quando:

  1. for necessário fazer muitos cálculos;
  2. não quisermos que uma variável possa ser nula ou que seu valor padrão seja nulo;
  3. o método onde a variável estiver inserida precise retornar um valor.

Classes wrapper, quando:

  1. quisermos usar Collections ou Generics;
  2. quisermos que uma variável possa ser nula ou que seu valor padrão seja nulo;
  3. o método onde a variável estiver inserida possa retornar nulo.

Como eu disse anteriormente, varia de situação para situação, e você poderá encontrar programadores com opiniões diferentes, portanto o melhor a se fazer é analisar a situação antes de fazer sua escolha. Mas só esclarecendo, deixar o programa fazer uso do Autoboxing e Unboxing, dependendo do caso, podem afetar a performance do programa, embora casos como esse sejam bem mais relevantes quando tratamos de programas que exigem esse foco na velocidade de processamento.

Espero ter ajudado, qualquer dúvida é só avisar!

Bons estudos!!