我想创建一个几乎与FXCollections.observableArrayList()
返回的对象相同的类,但具有一些额外的功能。我的第一个念头是
public class MyObservableList implements ObservableList
{
private ObservableList list = FXCollections.observableArrayList();
public functionWhatever()
{
// whatever
}
}
但这意味着要覆盖
ObservableList
附带的〜30个函数(这似乎暗示我做错了什么)。FXCollections.observableArrayList()
返回类型为com.sun.javafx.collections.ObservableListWrapper
的对象,但是当我扩展ObservableListWrapper
时,我需要创建类似以下的构造函数MyObservableList( List arg0 )
或者
MyObservableList( List arg0, Callback arg1 )
这让我很担心,因为
FXCollections.observableArrayList()
不接受任何参数。我不知道
FXCollections
如何创建它返回的ObservableListWrapper
对象,但我希望MyObservableList
与FXCollections
返回的对象相同(外加一些额外的功能)。我该怎么做呢?
最佳答案
扩展 SimpleListProperty docs.oracle.com
此类提供包装ObservableList的Property的完整实现。
注意此ctor:
公共(public)SimpleListProperty(ObservableList initialValue)
所以你可以:
public class MyObservableList extends SimpleListProperty
{
//constructor
MyObservableList(){
super(FXCollections.observableArrayList());
}
public functionWhatever()
{
// whatever
}
}
这样,您的类将基于ArrayList。