假设我有一个布尔属性,它应该表示特定路径中的特定文件是否存在这一事实。
这是一些代码:
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();
}
好的。事实上,这个属性是只读的,因为它不能被设置,它的值取决于文件所代表的“外部”条件,该文件是否存在于应用程序主目录中。
然而,我需要刷新属性,即再次查看文件是否仍然存在,并相应地引发更改和失效事件。
我可以轻松地向属性类添加一个刷新方法,但为了调用它,我必须创建一个内部类,而不仅仅是一个匿名类。
而且我需要一个匿名类来处理每种不同类型的只读但可刷新属性,即布尔值、字符串、整数等
。问题是:有没有更方便的方法来实现这一点?