为什么会出现
public interface ArrayOfONEITEMInterface <T extends ONEITEMInterface>{
public List<T> getONEITEM();
}
编译,但不运行
public interface ArrayOfONEITEMInterface <? extends ONEITEMInterface>{
public List<?> getONEITEM();
}
在类和方法签名中,? 和 T 有什么区别?
?
是非法的,但是?
可以出现在该标识符的类型边界中。因此,在class Sample<T extends Comparable<?>
中,作为T
出现的内容必须是有效的Java标识符,这不包括?
,但是在边界extends Comparable<?>
中的?
是有效的。是的,你说得对,在类声明中的?
和方法返回类型中的?
是无关的(如果这是合法的话)。 - erickson