Java 通配符(?)在键入“时起作用”;";不';t在泛型中-为什么?
我对java中的泛型一无所知。我有一个名为Java 通配符(?)在键入“时起作用”;";不';t在泛型中-为什么?,java,generics,Java,Generics,我对java中的泛型一无所知。我有一个名为RIEngine的界面 我正在尝试以下示例: private <T> boolean allExist(List<T extends RIEngine> resultedList, String... columnName) { ... } private boolean allExist(列表结果列表, 字符串…列名称) { ... } 不编译 但是 private
RIEngine
的界面
我正在尝试以下示例:
private <T> boolean allExist(List<T extends RIEngine> resultedList,
String... columnName)
{ ... }
private boolean allExist(列表结果列表,
字符串…列名称)
{ ... }
不编译
但是
private boolean allExist(列表尝试以下操作:
private <T extends RIEngine> boolean allExist(List<T> resultedList, String... columnName){...
private boolean allExist(List resultedList,String…columnName){。。。
您需要将类型边界放在类型声明中,而不是放在使用它的地方
第二个方法编译的原因是它是一个通配符(您可以使用它,而无需事先声明为该方法的类型)请给出一个不可编译的最小示例。Sun在这方面有一个非常好的教程:。另外,它与的完全相同,在您的第二个示例中,您根本没有使用t
。因此private boolean allExist(比我快27秒,请列出+1:)请接受这个答案。我只是在我的帖子发送后才注意到的。
private <T extends RIEngine> boolean allExist(List<T> resultedList, String... columnName){...