java - 了解对象初始化中的泛型

标签 java generics object initialization

我有一个关于 Java 泛型的基本问题: map 的以下两个初始化之间有什么区别?

        Map<String, String> maplet1 = new HashMap<String, String>();

        Map<String, String> maplet2 = new HashMap();

我知道第一个初始化是在对象构造中指定泛型,但我不理解这样做的潜在后果,而不是后面的对象构造 (maplet2)。在实践中,我总是看到代码使用 maplet1 结构,但我不明白这样做比其他结构有什么好处。

最佳答案

第二个 Map 被分配给原始类型,将导致编译器警告。您可以简单地使用第一个版本来消除警告。

有关更多信息,请参阅:What is a raw type and why shouldn't we use it?

关于java - 了解对象初始化中的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124748/

相关文章:

java - 如何通过单击按钮打开一个新的 JPanel 窗口?

c# - 来自 IEnumerable 的 foreach 中特定类型的对象

c# - 为什么这个类型转换不起作用?

arrays - 两个数组,一个有时间,另一个有时间

使用 R 删除名称以模式开头的工作区对象

java - ArrayList 上的递归二分查找

java - Java 中 3DES 与 RSA 的 key 交换

java - 返回给定接口(interface)的实现的工厂方法

Java 创建一个类的最多 3 个对象

java - 变量为空,尽管它已被设置