A GSON acessa diretamente membros privados?

Resumo:

o GSON acessamembros privados de uma classe diretamente sem chamar seus métodos getter para buscar o valor?

A regra do Java que se segue é seclasse B tem um membro privadonão pode ser acessado porclasse A sem métodos getter / setter.

Agora, eu estava trabalhando em um projeto com o GSON, onde, na minha opinião, os métodos getter / setter estão sendo ignorados [não usados e o membro privado é acessado diretamente]

Bem, sou apenas um estudante, então eu poderia estar perdendo algum trabalho comum.

classe A

public class A {
public static void main(String[] args) {
    B b = new B();
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    System.out.println(gson.toJson(b));
    System.out.println("--end--");
}
}

classe B

public class B {
private int a;

public B() {
    a = 1;
}

public int getA() {
    System.out.println("I am invoked !");
    return 10;
}

public void setA(int a) {
    this.a = a;
}
}

Nota: B.a recebe o valor 1 e codifiquei getA () para sempre retornar 10

se eu acessar B.a da classe A,TUDO FUNCIONA COMO ESPERADO e issonão vai deixar eu faço isso, tudo bem até aqui

A dúvida da GSON começa aqui

public class A {
public static void main(String[] args) {
    B b = new B();
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    System.out.println(gson.toJson(b));
    System.out.println("--end--");
}
}

Agora, já que B.a é privado, deve-se chamar o método getter que é codificado para sempre retornar 10, mas a saída que recebo é

Resultado:

{
  "a": 1
}
--end--

então, em outras palavras, meu método getter para o método privado NUNCA É INVOCADO

questionAnswers(1)

yourAnswerToTheQuestion