我对java中的泛型很陌生.我有一个名为的接口RIEngine.
我正在尝试以下示例:
private <T> boolean allExist(List<T extends RIEngine> resultedList,
String... columnName)
{ ... }
Run Code Online (Sandbox Code Playgroud)
不编译.
但
private <T> boolean allExist(List<? extends RIEngine> resultedList,
String... columnName)
{ ... }
Run Code Online (Sandbox Code Playgroud)
编译.
我的问题是:为什么会如此.
为什么我不能使用type ="T"而不是外卡?
请帮我理解.
试试这个:
private <T extends RIEngine> boolean allExist(List<T> resultedList, String... columnName){...
Run Code Online (Sandbox Code Playgroud)
您需要将类型边界放在类型声明中,而不是放在它使用的位置.
第二个编译的原因是因为它是一个通配符(您可以使用它而不事先声明为该方法的类型)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |