升级到Java 1.5及更高版本有哪些危险?

pet*_*ust 2 java

我是Java的长期用户(但我是科学家而不是专业开发人员).每当新版本问世时我都会升级,但我最初只使用一小部分新功能,因为我并不总是有时间学习所有内容.

最近我了解到,除非我完全理解泛型,否则我可能会在使用时遇到严重危险(或者在这种情况下不使用它们) - 我不知道哪些危险并且不明显.(我很欣赏我被Eclipse警告但我不明白这个警告!)

具体的例子是,现在(从1.5开始)使用原始类型并且Class(而不是Class<?>Class<MyStuff>)具有严重危险的不良做法.请参阅为什么Class <?>优先于Class.

我的问题是 - 由于升级到Java 1.5(或1.6,1.7)但使用我的旧代码或编程风格,我可能遇到的其他危险是什么并且没有意识到?

Buh*_*ndi 5

我会谈论相反的(即好处):

我不知道危险(我已经将Java 1.4代码移植到没有hickup的Java 6以及java 5代码到java 6,java意味着JDK).至于警告,它基本上是一个警告(因为你的代码将编译),你可以自由地解决这些警告.

至于Generics,Generics用于编译器的编译时检查,即一旦编译器具有元素类型(例如in Collection),它就可以看出你是否正确使用了对象并使用了正确的强制转换.

泛型是通过类型擦除实现的.它们仅在编译器擦除之后才在编译时出现.这是为了提供与使用原始类型的遗留代码的互操作性(例如List在JDK 1.4中).

我不知道这些是否会有危险,但它不会影响您的JDK 4应用程序:

  • 自动装箱
  • 枚举
  • 可变参数
  • 的foreach
  • 注释

并且您具有更好的Java Collections Framework性能.

PS从JDK 1.4迁移到新JDK(5及更高版本)的唯一问题是你将面临enum问题(因为它是来自JDK 5及更高版本的保留关键字).比那更好,你还可以.