【发布时间】:2020-02-23 23:17:42
【问题描述】:
我的理解是,泛型 Java 类需要在类型上进行参数化,然后才能投入使用。我很惊讶下面的示例代码,其中泛型类没有被参数化,执行没有任何错误。
public class Box<T> {
private T t;
public static void main(String[] args) {
System.out.println("It actually executed!!!!");
}
public void set(T t) { this.t = t; }
public T get() { return t; }
}
java Box
产生输出It actually executed!!!!
在这种情况下,是否有隐式类型被传递给泛型类?
【问题讨论】:
-
为什么它不起作用? main 是一个不引用 T 的方法。通常情况下,您不会有一个泛型类定义的主入口点,所以这个例子有点做作。
-
没有你的类的实例,所以没有任何东西被分配给类型参数。