With early releases of the javac compiler for what is now called Java 5.0, you had to use the -source 1.5 flag in order to get the compiler to handle generics, enums, autoboxing, the for/in loop, etc.
The -source 1.5 option is now the default. I don't know when this changed, but I just became aware of it. If you have code that uses enum as an identifier rather than as a keyword, you'll need to compile it with the -source 1.4 option. And if you have even older code that uses assert as an identifier rather than a keyword, then you can use the (new) -source 1.3 option.
-source 1.5 is still supported, but is not required. Making it the default is a good thing, and not just because it would be disconcerting to have to type "1.5" every time we wanted to compile a Java 5.0 program.



