Java泛型是否有办法告诉编译器类型T
必须是U
类型? E.g。
public class Whatever<T, U> {
T specific;
U moreGeneral;
}
现在,我想确保T是U
的子类。有没有办法指定这个?
答案 0 :(得分:8)
只需使用
public class Whatever<T extends U,U>
答案 1 :(得分:4)
为了澄清,以下内容将在JDK 1.7之前完成。当试图切换U和T的声明顺序时,我得到illegal forward reference to type argument U
。与其他帖子一样,对于较新的JDK版本,它似乎不是问题。
根据post,这已在JDK 1.7中修复
public class Whatever <U, T extends U> {
T specific;
U moreGeneral;
}