7

我想创建一个与返回的对象几乎相同FXCollections.observableArrayList()但具有一些额外功能的类。我的第一个想法是

public class MyObservableList implements ObservableList
{
    private ObservableList list = FXCollections.observableArrayList();

    public functionWhatever()
    {
        // whatever
    }

}

但这意味着覆盖附带的〜30个函数ObservableList(这似乎暗示我做错了什么)。

FXCollections.observableArrayList()返回一个类型的对象com.sun.javafx.collections.ObservableListWrapper,但是当我扩展时,ObservableListWrapper我需要创建一个构造函数,例如

MyObservableList( List arg0 )

或者

MyObservableList( List arg0, Callback arg1 )

这让我担心,因为FXCollections.observableArrayList()不接受任何论点。

我不知道如何FXCollections创建ObservableListWrapper它返回的对象,但我希望MyObservableList与返回的对象相同FXCollections(加上几个额外的函数)。

我该怎么做呢?

4

1 回答 1

3

扩展SimpleListProperty docs.oracle.com

此类提供包装 ObservableList 的 Property 的完整实现。


注意这个ctor:

公共 SimpleListProperty(ObservableList 初始值)

这样你就可以:

public class MyObservableList extends SimpleListProperty
{
    //constructor
    MyObservableList(){
        super(FXCollections.observableArrayList());
    }

    public functionWhatever()
    {
        // whatever
    } 

}

这样,您的课程将基于 ArrayList。

于 2013-01-14T01:30:37.807 回答