java - <?> 是什么意思

标签 java generics

我使用以下代码创建了一个泛型类

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/

相关文章:

java - 在java中覆盖列表结果类型

java - 覆盖接口(interface)中的java泛型方法

java - Hibernate 类与列表的强制转换异常

c# - 如何实现泛型方法对不同的值类型进行数学计算

java - 如何避免gson tojson递归

java - 当 Java 应用程序位于负载均衡器后面时,在某些 URL 上强制使用 SSL

java - 货币异常 : No MonetaryAmountsSingletonSpi loaded

swift - 实现符合 Hashable 协议(protocol)的通用结构。错误 : Refernce to generic type 'strA' requires arguments in <. ..> 错误

java - 在 Java 中注释相对于 XML 的主要优点是什么

java - 如何将请求分派(dispatch)回发送请求的页面?