简单的 Java 泛型问题:我有两个类 - 其中一个使用泛型来定义其类型,另一个扩展此类以提供具体类型。
public class Box<Item> {
...
}
public class Toolbox extends Box<Tool>{
...
}
鉴于 Toolbox extends Box 提供了一个 Tool 作为通用占位符的实际类型,我认为应该可以做这样的事情:
Box<Tool> box = new Box();
Toolbox toolbox = box;
但是,这似乎会导致类型不匹配。这是为什么?
最佳答案
这不是一个真正的泛型问题。您的问题是您将一个不太具体类型的对象分配给一个更具体类型的变量。
如果您尝试将对象分配给字符串变量,即使字符串扩展了对象,您也会遇到同样的问题。
但是,您应该能够编写 Box<Tool> box = new Toolbox();
具有给定的类结构。恰恰相反。
关于java - 泛型 - 向泛型类提供具体类型时类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3873862/