我使用以下代码创建了一个泛型类
public class MyBean<E> {
}
要创建该类的对象,我可以使用:
MyBean<String> m1 = new MyBean<String>();// valid --------------------statement 1
MyBean<?> m1 = new MyBean<String>(); // valid --------------------statement 2
但是当我尝试使用以下命令创建对象时出现错误:
MyBean<?> m1 = new MyBean<?>();// invalid but why? --------------------statement 3
为什么语句 2 有效而语句 3 无效。 <?>
是什么意思
最佳答案
MyBean<?>
意思是“一个由特定类型参数化的 MyBean,但我不知道是哪一个。由于“我不知道是哪一个”,它在类型声明中有意义,但在实例化中没有意义。你不能创建“某物,但我不知道是什么”。
关于java - <?> 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8739617/