我发现您可以使用特殊类型调用通用方法,例如:
假设我们有一个通用方法:
class ListUtils {
public static <T> List<T> createList() {
return new ArrayList<T>();
}
}
我们可以这样称呼它:
List<Integer> intList = ListUtils.<Integer>createList();
但是,当它静态导入时,我们怎么称呼它呢?例如。:
List<Integer> intList = <Integer>createList();
这是行不通的。
最佳答案
你不能您必须使用类名来引用它。
似乎具有:
void foo(List<String> a) {}
并且调用
foo(createList())
不能推断正确的类型。因此,您应该显式使用类名,例如ListUtils.createList()
或使用中间变量:List<String> fooList = createList();
foo(fooList);
最后,guava具有
Lists.newArrayList()
,因此最好重用它。