小编nic*_*411的帖子

如何在java中扩展列表以存储其他元数据并强制它只接受一种类型的对象?

除了包含的项目,我还必须在列表中存储名称和ID.因此,我扩展ArrayList如下:

class MyList<E> extends ArrayList<E>{
    private int id;
    private String name;

    MyList(int id, String name){
        this.id = id;
        this.name = name;
    }
    id getId(){       return id;   }
    String getName(){ return name; }
}
Run Code Online (Sandbox Code Playgroud)

现在我意识到,这个扩展只会包含一种特定类型的对象.那么如何删除列表的通用字符?

class MyList<MyObject> extends ArrayList<E>
class MyList<MyObject> extends ArrayList<MyObject>
Run Code Online (Sandbox Code Playgroud)

...等等失败了.我想通过实例化我的列表

MyList mylist = new MyList();
Run Code Online (Sandbox Code Playgroud)

......它应该只自动接受MyObject...

(创建一个包含ArrayList除了meta之外的包装器会更好吗?但是因为它仍然是一个列表,为什么要删除所有列表典型的功能......)

java collections list extending

1
推荐指数
1
解决办法
578
查看次数

标签 统计

collections ×1

extending ×1

java ×1

list ×1