I found that you can call a generic method with a special Type, e.g.:
suppose we have a generic method:
class ListUtils {
public static <T> List<T> createList() {
return new ArrayList<T>();
}
}
we can call it like:
List<Integer> intList = ListUtils.<Integer>createList();
But how can we call it when it’s statically imported? e.g.:
List<Integer> intList = <Integer>createList();
this does not work.
You can’t. You’d have to reference it using the class name.
It seems that having:
and calling
foo(createList())does not infer the correct type. So you should either explicitly use the class name, likeListUtils.createList()or use an intermediate variable:Finally, guava has
Lists.newArrayList(), so you’d better reuse that.