我发现您可以使用特殊类型调用通用方法,例如:

假设我们有一个通用方法:

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(),因此最好重用它。

09-11 18:15