【发布时间】:2010-09-06 16:51:02
【问题描述】:
我已经定义了一个 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。
【问题讨论】:
-
Cheekysoft 解释了原因,但如果你真的觉得需要添加第二种类型 def,只需在静态函数调用之前添加类名: List
myList = MyClass. createEmptyList() ;