您能否向我解释为什么在尝试定义时出现此错误?
通用类:
public class GenericClass<T, S extends T> {
...
}
Main.java
public class Main(){
public static void main(String[] args){
// This line generates compilation error
GenericClass<Number, Integer> object = new GenericClass();
}
}
我收到此错误:
Bound mismatch: The type Integer is not a valid substitute for the bounded parameter <S extends T> of the type GenericClass<T,S>
[解决]
我的项目中有另一个名为Integer的课程
非常感谢您快速回复
答案 0 :(得分:3)
此代码编译并运行正常。
没有编译错误,但正如nullpointer所解释的那样,有一个警告:
Unchecked assignment of GenericClass to GenericClass<java.lang.Number, java.lang.Integer>
解决此问题的一种简单方法是用以下代码替换您的代码:
// Java 6 and lower
GenericClass<Number, Integer> object = new GenericClass<Number, Integer>();
// Java 7 and higher, using the diamond operator
GenericClass<Number, Integer> object = new GenericClass<>();