我想创建一个几乎与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
返回的对象相同(加上一对额外功能)。
我该怎么做?
答案 0 :(得分:2)
扩展 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。