Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在getElementAt()方法中如何引用ArrayList_Java_Arraylist_Abstract - Fatal编程技术网

Java 在getElementAt()方法中如何引用ArrayList

Java 在getElementAt()方法中如何引用ArrayList,java,arraylist,abstract,Java,Arraylist,Abstract,这是用java编写的 好的,我继承了抽象方法getElementAt(int)。我想重写此方法,以便它在ArrayList中的指定索引处查找元素。因为我实际上并没有将数组列表传递给该方法,所以我不知道如何引用它 someArrayList.getElementAt(int n); 它如何访问方法中的someArrayList 至于我继承了什么 公共类ListEngine扩展了AbstractListModel 而我正在重写这个类 getElementAt(int n) 当然,Abstract

这是用java编写的

好的,我继承了抽象方法
getElementAt(int)
。我想重写此方法,以便它在ArrayList中的指定索引处查找元素。因为我实际上并没有将数组列表传递给该方法,所以我不知道如何引用它

someArrayList.getElementAt(int n);
它如何访问方法中的someArrayList

至于我继承了什么

公共类ListEngine扩展了AbstractListModel

而我正在重写这个类

getElementAt(int n)

当然,
AbstractListModel
是否提供了关于项目存储方式等的实现

因此,您需要做的是使用/实现一个
列表
对象(或者某种
集合
),然后“重定向”对它的调用:

示例(使用
ArrayList
):

公共类ListEngine扩展了AbstractListModel{
private final ArrayList innerData=新ArrayList();
公共列表引擎(){
}
@凌驾
公共T getElementAt(整数索引){
返回innerData.get(索引);
}
@凌驾
公共整数大小(){
返回innerData.size();
}
}
或者您可以使用另一个
列表
(如
链接列表


当然,上面的实现是非常无用的,因为初始化的
innerData
总是空的。此外,如果对
innerData
进行了修改,则需要调用
FireContentsAnged
通知侦听器(这是继承类的责任,否则可能会导致严重问题,因为某些侦听器可能会依赖于此)。

这是Java吗?如果从ArrayList继承,则调用super.getElementAt(n);从你的getElementAt()代码中。分享你已经拥有的和你尝试过的。如果我调用super.getElementAt(n),我不是简单地引用了一个没有实际信息的抽象类吗?不管怎么说,我都试过了,但还是出错了。至于我试过什么?目前我还没有对它做任何处理,因为我不知道如何调用ArrayList。您是从
javax.swing.AbstractListModel
继承的吗?你需要更好地解释你的问题。
public class ListEngine<T> extends AbstractListModel {

    private final ArrayList<T> innerData = new ArrayList<T>();

    public ListEngine () {
    }

    @Override
    public T getElementAt(int index) {
        return innerData.get(index);
    }

    @Override
    public int size() {
        return innerData.size();
    }

}