Phew, lots of posts today ;) I just found an article about the new language features in Java 1.5:
- Generics - Provides compile-time type safety for collections and eliminates the drudgery of casting.
- Enhanced for loop - Eliminates the drudgery and error-proneness of iterators.
- Autoboxing/unboxing - Eliminates the drudgery of manual conversion between primitive types (such as int) and wrapper types (such as Integer).
- Typesafe enums - Provides all the well-known benefits of the Typesafe Enum pattern (Effective Java, Item 21) without the verbosity and the error-proneness.
- Static import - Lets you avoid qualifying static members with class names, without the shortcomings of the Constant Interface antipattern (Effective Java, Item 17).
- Metadata - Lets you avoid writing boilerplate code, by enabling tools to generate it from annotations in the source code. This leads to a "declarative" programming style where the programmer says what should be done and tools emit the code to do it.
I haven't fully read it myself, you can read it here.