1
resposta

Uma dúvida sobre o Jackson e uso do construtor default

Não consegui entender claramente pq precisa do construtor default, como

public Pet() { }

já que não temos os metodos set como ele consegue partindo do construtor default alterar os atributos?

1 resposta

Olá, Rennan! Tudo bem?

O Jackson, é a biblioteca usada para converter objetos Java em JSON e vice-versa, precisa do construtor padrão (ou default) para criar uma instância da classe antes de preencher os campos do objeto.

Por exemplo, quando o Jackson lê um JSON para convertê-lo em um objeto Java, ele primeiro cria uma instância da classe usando o construtor padrão. Depois, ele usa os métodos set para preencher os campos do objeto.

No entanto, você mencionou que não temos os métodos set. Isso é interessante porque, na ausência de métodos set, o Jackson usa o que é chamado de "Acesso de propriedade de campo direto". Isso significa que ele acessa diretamente os campos do objeto para definir os valores, em vez de usar métodos set.

Aqui está um exemplo para ilustrar isso:

public class Pet {
    public String name;
    public int age;

    public Pet() {
    }
}

Neste exemplo, mesmo sem métodos set, o Jackson pode criar um objeto Pet a partir de um JSON como este:

{
    "name": "Rex",
    "age": 5
}

O Jackson faz isso criando primeiro uma instância de Pet usando o construtor padrão, e então ele preenche os campos name e age diretamente.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.