GSON напрямую обращается к частным пользователям?

Резюме:

доступ GSONчастные участники класса напрямую, не вызывая его методы получения для получения значения?

Правило Java, которое следует, есликласс B имеет частный член этонедоступен откласс А без методов получения / установки.

Теперь я работал над проектом с GSON, где я чувствую, что методы получения / установки игнорируются [не используются, а к приватному члену осуществляется прямой доступ]

Ну, я просто студент, так что я мог бы пропустить какую-то обычную работу.

класс А

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

класс 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;
}
}

Примечание: B.a присвоено значение 1, и я закодировал getA (), чтобы всегда возвращать 10

если я получу доступ к B.a из класса A,ВСЕ РАБОТАЕТ, КАК ОЖИДАЕТСЯ и этоне позволю Я делаю это, все хорошо, пока здесь

GSON сомнение начинается здесь

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

теперь, поскольку B.a является приватным, предполагается, что он вызывает метод getter, который закодирован, чтобы всегда возвращать 10 НО вывод, который я получаю,

Выход:

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

поэтому, другими словами, мой метод get для приватного метода никогда не вызывается

Ответы на вопрос(1)

Ваш ответ на вопрос