我对java中的泛型很安静。我有一个名为RIEngine
的接口。
我正在尝试以下示例:
private <T> boolean allExist(List<T extends RIEngine> resultedList,
String... columnName)
{ ... }
无法编译。
但是
private <T> boolean allExist(List<? extends RIEngine> resultedList,
String... columnName)
{ ... }
编译。
我的问题是:为什么会如此。
为什么我不能使用type =“T”而不是外卡?
请帮助我理解。
答案 0 :(得分:9)
试试这个:
private <T extends RIEngine> boolean allExist(List<T> resultedList, String... columnName){...
您需要将类型边界放在声明类型中,而不是在使用它的位置。
第二个编译的原因是因为它是一个通配符(您可以使用它而不事先声明为该方法的类型)