GSON accede directamente a miembros privados?

Resumen:

accede GSONmiembros privados de una clase directamente sin invocar sus métodos getter para obtener el valor?

La regla de Java que se sigue es siclase B tiene un miembro privadono se puede acceder porclase A sin métodos getter / setter.

Ahora estaba trabajando en un proyecto con GSON donde tengo la sensación de que los métodos getter / setter están siendo ignorados [no utilizados, y se accede directamente a un miembro privado]

Bueno, solo soy un estudiante, por lo que podría faltar algún trabajo común.

clase 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--");
}
}

clase 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 tiene el valor asignado de 1, y codifiqué getA () para que siempre devuelva 10

si accedo a B.a desde la clase A,TODO FUNCIONA COMO ESPERADO y esono dejes yo lo hago, todo bien hasta aquí

La duda de GSON comienza aquí

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--");
}
}

ahora como B.a es privado, se supone que invoca el método getter que está codificado para devolver siempre 10 PERO la salida que obtengo es

Salida:

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

en otras palabras, mi método getter para el método privado NUNCA SE INVOCA

Respuestas a la pregunta(1)

Su respuesta a la pregunta