Java:泛型和TypeCasting

时间:2017-08-09 04:48:45

标签: java

我正在开发一个安全程序,我正面临着一个关于泛型的大问题。

请考虑以下代码:

abstract class Dictionary{
    List<Entity> list;
    public Dictionary(List<Entity> list){
        this.list = list; // Error
    }
 }

实体是用户定义的interface,它有两个实现classes

interface Entity{
...
}

class BinaryEntity implements Entity{

}
class ListEntity implements Entity{

}

问题在于继承的使用。我有一个concrete class被称为二进制字典,它扩展了abstract class dictionary.it包含一个二进制实体列表,当我想将列表传递给{时,问题就出现了{1}} super class有错误我知道以下陈述是错误的:

constructor

我已尝试过上下限,但仍有问题请帮忙。

很抱歉这个问题很长。提前致谢

1 个答案:

答案 0 :(得分:0)

您还需要Dictionary通用,例如:

abstract class Dictionary<E extends Entity> {
    List<E> list;
    public Dictionary(List<E> list){
        this.list = list;
    }
}

class BinaryDictionary extends Dictionary<BinaryEntity> {
    public BinaryDictionary(List<BinaryEntity> list) {
        super(list);
    }
    // ... custom methods
}