Vis*_*hao 13 java generics static-import
我发现你可以使用特殊类型调用泛型方法,例如:
假设我们有一个通用的方法:
class ListUtils {
public static <T> List<T> createList() {
return new ArrayList<T>();
}
}
Run Code Online (Sandbox Code Playgroud)
我们可以称之为:
List<Integer> intList = ListUtils.<Integer>createList();
Run Code Online (Sandbox Code Playgroud)
但是,当它静态导入时我们怎么称它呢?例如:
List<Integer> intList = <Integer>createList();
Run Code Online (Sandbox Code Playgroud)
这不起作用.
你不能.您必须使用类名引用它.
似乎有:
void foo(List<String> a) {}
Run Code Online (Sandbox Code Playgroud)
并且调用foo(createList())不会推断出正确的类型.所以你要么显式地使用类名,ListUtils.createList()要么使用中间变量:
List<String> fooList = createList();
foo(fooList);
Run Code Online (Sandbox Code Playgroud)
最后,番石榴有Lists.newArrayList(),所以你最好重复使用它.
| 归档时间: |
|
| 查看次数: |
2676 次 |
| 最近记录: |