Java 扩展列表的ArrayList

Java 扩展列表的ArrayList,java,list,arraylist,Java,List,Arraylist,为什么这样做是不可能的 RowList<List<Value>> extends ArrayList<List<Value>> 行列表扩展了ArrayList 还有,如何做到这一点 RowList<Value> extends ArrayList<List<Value>> 行列表扩展了ArrayList 我正在尝试实现一个列表以用于数据库,并希望扩展数组列表,以便能够检查.add(),.set()等方法是

为什么这样做是不可能的

RowList<List<Value>> extends ArrayList<List<Value>>
行列表扩展了ArrayList
还有,如何做到这一点

RowList<Value> extends ArrayList<List<Value>>
行列表扩展了ArrayList
我正在尝试实现一个
列表
以用于
数据库
,并希望扩展
数组列表
,以便能够检查
.add(),.set()
等方法是否违反
数据库
的要求(不添加具有相同键的两行等)。我意识到这可能不是实现
数据库的最佳方式,但这是大学的一项任务,要求我们这样做


编辑:使用第二个选项(编译),如何访问RowList类保存的列表中的值?

以下两行是相同的(对于编译器),即使您有一个名为
Value
的类,这也是正确的,因为命名参数将屏蔽类类型

class RowList<Value> extends ArrayList<List<Value>>

class RowList<T> extends ArrayList<List<T>>
其中,
Value
是代码库中的自定义对象。然后在代码的其他地方,您可以执行以下操作:

RowList rl = new RowList();
rl.add(new Value(...));
Value v = rl.get(i);
编辑:

前面的示例假设
类是数据的输入行。相反,如果它是单个数据项,并且该行由
列表表示,那么它将更像以下内容:

public class RowList extends ArrayList<List<Value>> {

    @Override
    public boolean add(List<Value> e) {
        // TODO Custom code to check and what not
        return super.add(e);
    }
}

RowList rl = new RowList();
List<Value> row = new ArrayList<Value>();
row.add(new Value(...));
rl.add(row);
List<Value> rowGet = rl.get(i);
公共类行列表扩展了ArrayList{
@凌驾
公共布尔加法(列表e){
//TODO要检查的自定义代码以及不检查的内容
返回super.add(e);
}
}
行列表rl=新行列表();
列表行=新的ArrayList();
行。添加(新值(…);
rl.添加(行);
List rowGet=rl.get(i);

行列表扩展了ArrayList
怎么样?@Supericy这很好,是的,但不是我想做的。首先为什么要扩展
ArrayList
?看起来像是代码气味。顺便说一句,如果您不想在
集合中重复项,请使用@luigimendoza:问题是以下代码不起作用:import java.util.List;类A{}类C扩展了{},但这段代码可以工作:import java.util.List;类A{}类C扩展了{}是的,值在我的代码中是一个对象。使用类RowList扩展ArrayList声明,如何访问RowList中的值?
RowList rl = new RowList();
rl.add(new Value(...));
Value v = rl.get(i);
public class RowList extends ArrayList<List<Value>> {

    @Override
    public boolean add(List<Value> e) {
        // TODO Custom code to check and what not
        return super.add(e);
    }
}

RowList rl = new RowList();
List<Value> row = new ArrayList<Value>();
row.add(new Value(...));
rl.add(row);
List<Value> rowGet = rl.get(i);