给定以下代码示例:
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);
}
}
(基于http://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJABHGAJ的简化示例)
在这种情况下,ObservableList 怎么知道它的底层数据发生了变化?毕竟 Person 类中的 SimpleStringProperty "firstName" 是私有的,所以 ObservableList 应该不能附加任何类型的侦听器?或者这是通过某种反思完成的?