【发布时间】:2012-01-17 22:07:22
【问题描述】:
类似下面的内容不会给我一个编译时或运行时错误,我对原因一无所知。有没有办法在调用 cls.add 时强制编译错误?
为什么类定义中的 T 定义没有被传递到对内部方法的调用?我知道我没有那样实例化类,但是类状态 T 的定义必须是一个数字。
public class NewClass<T extends Number> {
private List<T> id = new ArrayList<T>();
public void add(List<T> elem) {
id.addAll(elem);
}
public static void main(String[] args) {
NewClass cls = new NewClass();
cls.add(new ArrayList<String>());
}
}
【问题讨论】: