特定のパス内の特定のファイルが存在するかどうかを表すブール型プロパティがあるとします。
ここにいくつかのコードがあります:
class SomeClass {
protected static final File FILE_TO_TEST = new File("test.canc.me");
//My javafx property
public ReadOnlyBooleanPropertyBase fileExistingProperty = new ReadOnlyBooleanPropertyBase() {
@Override public boolean get() {
return FILE_TO_TEST.exists();
}
@Override public Object getBean() { return null; }
@Override public String getName() { return ""; }
};
//old style property property
public boolean isFileExisting() {
return fileExistingProperty.get();
}
Ok。実際には、このプロパティは設定できないため読み取り専用であり、その値は、アプリケーション ホームに存在するファイルによって表される「外部」条件に依存します。
それでも、プロパティを更新する必要があります。つまり、ファイルがまだ存在するかどうかをもう一度確認し、それに応じて変更イベントと無効化イベントを発生させます。
プロパティ クラスに更新メソッドを簡単に追加できますが、それを呼び出すには、無名クラスだけでなく内部クラスを作成する必要があります。
そして、ブール値、文字列、整数など、さまざまな種類の読み取り専用でありながら更新可能なプロパティごとに匿名クラスが必要になります。
問題は、これを達成するためのより便利な方法はありますか?