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?
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?
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!