3
respostas

Construtor principal com properties e outro vazio

Estou querendo fazer uma classe que o construtor principal crie duas properties:

class pessoa (val nome : String?, val idade : Int?)

Porém também quero que minha classe tenha um construtor vazio, qual a melhor maneira de fazer isso?

 constructor () : this(null, null)
3 respostas

Oi Victor, tudo bem? Considerando o que você quer, sugiro utilizar valores padrões nas properties, por exemplo:

class pessoa (val nome : String? = null, val idade : Int?= null)

Dessa maneira, você vai permitir a sobrecarga tanto para nome apenas ou idade apenas ou nome e idade ou o vazio, pois você já fez a inicialização que é obrigatória.

Entretanto, não recomendo que utilize variáveis que podem receber null, a não ser que seja necessário...

Se tiver mais duvidas é só mandar.

[]s

Quando usamos um parser para json (Jackson), os objetos precisam ter um construtor vazio.

Essa abordagem já é valida :)

Mas não é necessário manter tipos que podem receber null, você pode, por exemplo, colocar valores padrões que são considerados "nulos".

class pessoa (val nome : String = "", val idade : Int = -1)

Veja que um nome vazio e idade negativa podem ser considerados valores nulos e, dessa forma, não vai ser necessário toda hora verificar se a variável é nula ou não (essa abordagem eu faço no terceiro curso que é sobre o Null Safety).

Inclusive, no final do terceiro curso eu deixo uns artigos falando sobre algumas abordagens para consumir APIs utilizando o Kotlin, depois dá uma olhada.