次のコード例を考えます。
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はどのような種類のリスナーもアタッチできないはずですか?それとも、これはある種の反省によって行われるのでしょうか?