Ste*_*roz 2 java generics collections
我想做以下(这不起作用,它只是解释这个概念).知道怎么做吗?
Class type;
if (/* something */)
type = String.class;
else
type = Boolean.class;
return new ArrayList<type>();
Run Code Online (Sandbox Code Playgroud)
ArrayList<type>不起作用.我尝试过type.getClass(),也没用.
将其包装到方法中,将类型作为泛型传递Class,让Java为您完成剩下的工作.无需任何条件分支.
<T> List<T> newList(Class<T> type) {
return new ArrayList<T>();
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
List<String> list = newList(String.class);
Run Code Online (Sandbox Code Playgroud)
请记住,T不必在泛型类级别指定.您可以为方法指定泛型类型,从而使其成为示例代码中的泛型方法.
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |