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