将map声明为Map <string,object =“”>与Map </string,>相反是否有任何优势

时间:2012-05-13 16:35:38

标签: java generics

除了确保key是一个String作为编译类型之外,还有其他任何优点吗?还是可以省略?我存储的值可以是多种类型

2 个答案:

答案 0 :(得分:4)

声明Map没有泛型类型信息已弃用,并且大多数IDE都在此处生成警告。即使它是Map<Object, Object>,这一点也很重要。在编译时确保密钥是String实际上也非常多。

从技术上讲,这些类型在编译期间会被删除,因此在运行代码时没有任何优势。但是再次 - 从Java 5开始,你应该总是包含泛型类型信息。

答案 1 :(得分:2)

使用Map<String, Object>的好处主要是代码可读性。 其他开发人员更容易阅读您的代码并节省一些转换操作。 编译后,泛型被删除,因此它对应用程序没有任何实际影响。 您还可以看到:reason generics were introduced in java 5