我是Java的长期用户(但我是科学家而不是专业开发人员)。每当新版本出现时我都会升级,但通常一开始我只使用一小部分新功能,因为我并不总是有时间研究所有内容。
最近我了解到,除非我完全理解泛型,否则我在使用(或者在本例中不使用它们)时可能会遇到严重的危险 - 我没有意识到并且不明显的危险。 (我很高兴 Eclipse 警告了我,但我不明白这个警告!)
具体的例子是,现在(自 1.5 起)使用原始类型是不好的做法,并且 Class
(而不是 Class<?>
或 Class<MyStuff>
)有严重的危险。请参阅Why is Class<?> preferred to Class .
我的问题是 - 由于升级到 Java 1.5(或 1.6、1.7)但使用旧代码或编程风格,我可能会遇到哪些其他危险并且没有意识到?
最佳答案
我会谈谈相反的情况(即好处):
我不知道危险(我已经将 Java 1.4 代码移植到 Java 6,没有出现任何问题,也将 java 5 代码移植到 java 6,java 意味着 JDK)。至于警告,它基本上是一个警告(因为您的代码将编译),您可以自由地解决这些警告。
就泛型而言,泛型用于编译器进行编译时检查,即一旦编译器获得元素类型(例如在 Collection
中),它就可以查看您是否使用过使用正确的强制转换正确地显示对象。
泛型是通过类型删除来实现的。它们仅在编译时存在,之后编译器将其删除。这是为了提供与使用原始类型的遗留代码的互操作性(例如 JDK 1.4 中的 List
)。
我不知道这些是否会带来危险,但它不会影响您的 JDK 4 应用程序:
- 自动装箱
- 枚举
- 可变参数
- foreach
- 注释
并且您可以享受 Java 集合框架的更好性能。
PS 从 JDK 1.4 迁移到新的 JDK(5 及更高版本)的唯一问题是您将面临 enum 问题(因为它是来自 JDK 的保留关键字) JDK 5 及更高版本)。除此之外,你还好。
关于java - 升级到 Java 1.5 及更高版本有哪些危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346521/