Java Efetivo Essencial - toString()

3931 단어 javawebdevprogramming

Sobrescreva semper o toString



Esta é uma série baseada no entendimento de tópicos relacionados ao livro com foco no resumo.

상황에 맞는

O método toString é um dos métodos que são herdados da classe Objetc.
A implementação desse método na classe Object é a seguinte :

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}


Que é o nome da classe seguido de @ e do valor 16진수 sem sinal do hashcode.

오 포르케

Porque temos que nos preocupar? Pense bem, se formos utilizar a implementação padrão que imprime o objeto algo como :

br.com.conta.Usuario@c712a7ee


O quanto visualizar esse trecho em seu log pode ajudar a realizar debug do seu código de maneira eficiente?
Seria bem melhor visualizar os dados que identifiquem de fato o objeto, certo?

예시

@Override
public String toString() {
    return "Usuario{" +
            "nome='" + nome + '\'' +
            ", email='" + email + '\'' +
            ", nascimento=" + nascimento +
            '}';
}


Acima sobrescrevemos 또는 toString da classe Usuario por isso ela esta com a annotação @Override.
Veja como esta muito mais legível e se logar o objeto iremos receber os dados no seguinte formato:

Usuario{nome='Ana dos Santos', email='[email protected]', nascimento=1977-08-15}


흠...
  • Pod surgir uma dúvida que muitos devs acabam tendo referente a LGPD, pois dependsendo do dado que o objeto guarda estado é perigoso registrarmos em logs, para isso é importante que você configure em sua dependsência de logs mascaramento de alguns dados de logs, em alguns casos vale apena também verificar se faz sentido ter o dado no toString.
  • Não coloque valores que não são acessíveis da classe pois isso não auxiliaria no debug do objeto e faria com que uma informação restrita da classe fique visível.

  • 오 라도 봄

    toString이 자동으로 작동하도록 허용하는 대부분의 권한은 예를 들어 Intellij temos a opção através do menu direito do mouse > generate > toString e aparece a tela para selecionarmos quais informações são necessárias para gerar or toString입니다.

    항상 잘 지내세요...

    항상 컨트롤러나 서비스의 예를 들어 시스템에 보호 장치를 설치해야 하는 경우에는 toString에 대한 보호 조치를 취해야 합니다. Geralmente isso só faz sentido para class de dominío ou que Representativeam objetos de transação e guardem estado.
    Outro ponto que deve ser levado em condieração é se uma superclasse já sobrescreveu esse método.

    좋은 웹페이지 즐겨찾기