Java ObservableList如何知道其基础数据发生了变化?

Java ObservableList如何知道其基础数据发生了变化?,java,javafx,Java,Javafx,给出以下代码示例: private final ObservableList<Person> data = FXCollections.observableArrayList( new Person("Jacob"), new Person("Isabella") ); public static class Person { private final SimpleStringProperty firstName

给出以下代码示例:

private final ObservableList<Person> data =
    FXCollections.observableArrayList(
        new Person("Jacob"),
        new Person("Isabella")   
    );



public static class Person {

    private final SimpleStringProperty firstName;

    private Person(String fName, String lName, String email) {
        this.firstName = new SimpleStringProperty(fName);

    }

    public String getFirstName() {
        return firstName.get();
    }

    public void setFirstName(String fName) {
        firstName.set(fName);
    }
}
私有最终可观察列表数据=
FXCollections.observableArrayList(
新人(“雅各布”),
新人(“伊莎贝拉”)
);
公共静态类人员{
私有最终SimpleStringProperty名字;
私人(字符串fName、字符串lName、字符串电子邮件){
this.firstName=新的SimpleStringProperty(fName);
}
公共字符串getFirstName(){
返回firstName.get();
}
public void setFirstName(字符串fName){
firstName.set(fName);
}
}
(基于的简化示例)


在这种情况下,ObservableList如何知道其基础数据发生了变化?毕竟Person类中的SimpleStringProperty“firstName”是私有的,所以ObservableList不能附加任何类型的侦听器?或者这是某种反射造成的?

不是。它只知道列表本身的更改。检查API。

你能提供一个示例,说明ObservableList知道何时调用setter吗?我不能,因为没有,我只是理解了一些错误;-)