可刷新javafx只读属性
假设我有一个布尔属性,它应该表示特定路径中的特定文件是否存在可刷新javafx只读属性,java,javafx-2,Java,Javafx 2,假设我有一个布尔属性,它应该表示特定路径中的特定文件是否存在 下面是一些代码: class SomeClass { protected static final File FILE_TO_TEST = new File("test.canc.me"); //My javafx property public ReadOnlyBooleanPropertyBase fileExistingProperty = new ReadOnlyBooleanPropertyBase() { @
下面是一些代码:
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();
}
嗯。事实上,该属性是只读的,因为它无法设置,其值取决于应用程序主目录中存在的文件所表示的“外部”条件但是,我需要刷新属性,即再次查看文件是否仍然存在,并相应地引发更改和失效事件
我可以很容易地向property类添加一个refresh方法,但是为了调用它,我必须创建一个内部类,而不仅仅是一个匿名类。
对于每种不同类型的只读但可刷新的属性,即布尔、字符串、整数等,我都需要一个匿名类。
问题是:有没有更方便的方法来实现这一点 我必须创建一个内部类,而不仅仅是一个无名氏类 我将采用这种方法,而不是尝试创建一堆匿名内部类 对于每种不同类型的只读但可刷新的属性,即布尔、字符串、整数等,我需要一个匿名类 使用泛型-这就是它们的设计目的!创建一个
ReadOnlyRefreshableProperty
,然后相关方法的返回类型和参数都使用T
作为其类型,这样就不需要为每个类型创建单独的类