看看这个方法:
public class Outer<E> {
public static class Inner{
public E value;
public Inner(E value){
this.value = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我们将使用以下代码使用它:
Outer.Inner i = new Outer.Inner(5);
System.out.println(i.value);
Run Code Online (Sandbox Code Playgroud)
这个东西不会编译,因为在内部方法中使用了 E。
我的问题是 - 我知道在编译时所有泛型都被删除并替换为 Object。那么为什么这里不是这种情况呢?E 将被 Object 替换,这整个事情应该编译。
这是否意味着我们永远不能使用没有类型的泛型类?(我知道这是不好的做法,但我认为这应该有效)
谢谢。