1
resposta

Melhor performance na classe Pet

Na aula que estou vendo, está sendo criado uma refatoração no objeto da PetService para melhor prática, através de um domain que vai trabalhar com os atributos do objeto.
No vídeo o instrutor trata os dados de uma forma diferente do que pensei, no caso, declara as variáveis Idade e Peso como int e float respectivamente, porém eu pensei em boas práticas declarar ambas como String, e no metodo, implementar o valueOf pensando em evitar NullPointerException, uma vez feito isso, quando estourar o dado da variável, vem como null e tambem pensando em melhor cacheamento dos dados. Está correto meu pensamento?

Segue minha classe Pet

package br.com.alura.domain;

public class Pet {

public Pet (String tipo, String nome, String raca, Integer idade, String cor, Float peso){
    this.tipo = tipo;
    this.nome = nome;
    this.raca = raca;
    this.idade = String.valueOf(idade);
    this.cor = cor;
    this.peso = String.valueOf(peso);
}

private String tipo;
private String nome;
private String raca;
private String idade;
private String cor;
private String peso;

}

1 resposta

Oi, Caio! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Curti sua preocupação com boas práticas ao pensar em null e na modelagem do domínio. Neste ponto, a ideia de manter idade e peso como String tende a atrapalhar mais do que ajudar: você perde validação de tipo, comparações e cálculos ficam mais verbosos, e o String.valueOf(null) vira a string "null" (não null), o que pode mascarar problema. Em vez disso, faz mais sentido manter Integer e Float no domínio e tratar null com validação ou valor padrão quando fizer sentido, deixando o objeto mais forte e seguro.

Uma dica interessante para o futuro é usar Objects.requireNonNullElse (ou validação no construtor) para evitar null sem transformar número em texto. Veja este exemplo:


Integer idade = Objects.requireNonNullElse(idadeParam, 0);
Float peso = Objects.requireNonNullElse(pesoParam, 0f);

Esse código garante que, se idadeParam ou pesoParam vier null, você usa 0 e 0f, mantendo idade e peso como números para cálculos e validações.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!