Почему я получаю InaccessibleObjectException при записи в файл JSON - PullRequest
0 голосов
/ 04 октября 2019

Я использую Gson для управления моим файлом Json. У меня есть класс User, который выглядит следующим образом:

открытый класс User {

private StringProperty username;
private StringProperty password;

...

public User() {}

public User(String user, String pass, ...) {

    this.username = new SimpleStringProperty(user);
    this.password = new SimpleStringProperty(pass);

    ...

}

public String getUsername() {
    return username.get();
}

public void setUsername(String username) {
    this.username.set(username);;
}

...

}

И вот как я добавляю пользователя в файл Json

public static boolean addUser(User user) throws IOException{

    String users = new String(Files.readAllBytes(Paths.get("users.json")));

    List<User> userList = getUsers(users);

    if (userList.contains(user)) return false;

    userList.add(user);

    Writer writer = new FileWriter("users.json");
    Gson gson = new GsonBuilder().create();
    gson.toJson(userList, writer);
    writer.close();

    return true;

}

gson.toJson (userList, writer) выдает эту ошибку:

Exception in thread "JavaFX Application Thread" java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.Object javafx.beans.property.SimpleStringProperty.bean accessible: module javafx.base does not "opens javafx.beans.property" to unnamed module @4bf59938

Я знаю, что это как-то связано с атрибутами StringProperty, но я не знаю, что не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...