我定义了一个Java函数:
static <T> List<T> createEmptyList() { return new ArrayList<T>(); }
一种调用方式是这样的:
List<Integer> myList = createEmptyList(); // Compiles
为什么不能通过显式传递泛型类型参数来调用它?:
Object myObject = createEmtpyList<Integer>(); // Doesn't compile. Why?
我Illegal start of expression从编译器得到错误。
Illegal start of expression
当Java编译器无法自行推断静态方法的参数类型时,您始终可以使用完整的合格方法名称Class来传递它。<类型> method();
Object list = Collections.<String> emptyList();