public class Test123<T extends Object> extends LinkedList<T> {
/**
*
*/
private static final long serialVersionUID = 1L;
public boolean add(T obj) {
return (!contains(obj)) && (super.add(obj));
}
public void test(){
add(new String("uuu"));
}
}
eclipse报如下编译错误:
The method add(T) in the type Test123<T> is not applicable for the arguments (String) ------解决方案--------------------
我只想问你一个问题:
Integer i = new Object();
比如上面这行代码,Integer也是Object的子类。那么就可以把父类引用赋值给子类的引用了?
很明显编译不过。但是:
Integer i = (Integer)new Object();
这样没问题,但是你会得到一个转型异常。因为Object它不是一个Integer。
Test123<String> t = new Test123<>();
t.test();
t.add("abc");
现在T是String,你调用test的时候,就相当于把Object赋值给了String。但Object不是String。