Java versions
versions1Java5Features
- Path
- pkg2versions/versions1Java5Features.java
- Package
- pkg2versions
- Study order
- 1
- Run
- Single-file source launch
- Command
- java pkg2versions/versions1Java5Features.java
- Version in the filename
- Java 5
- Example
- Java 5 example
- Requires
- Java 5
- Lesson
- Back to the chapter
There is no in-browser runner. This is the file from the curriculum, unchanged.
1package pkg2versions;2 3/*4 * versions1Java5Features.java (J2SE 5.0, 2004)5 * ------------------------------------6 * Landmark release that modernized the language.7 *8 * FEATURES & WHY:9 * - Generics : compile-time type safety, removes casts.10 * - Enhanced for : cleaner iteration.11 * - Autoboxing : seamless primitive <-> wrapper conversion.12 * - Varargs : variable-length argument lists.13 * - Enums : type-safe constants (vs int constants).14 * - Annotations : metadata (@Override etc.).15 * - Static import : import static members.16 */17import static java.lang.Math.PI;18import java.util.*;19 20public class versions1Java5Features {21 22 enum Level { LOW, MEDIUM, HIGH } // enum23 24 static <T> List<T> listOf(T... items) { // generics + varargs25 return new ArrayList<T>(Arrays.asList(items));26 }27 28 public static void main(String[] args) {29 // Generics + enhanced for30 List<String> names = listOf("Alice", "Bob", "Cara");31 for (String n : names) System.out.print(n + " ");32 System.out.println();33 34 // Autoboxing: int -> Integer automatically inside the List35 List<Integer> nums = listOf(1, 2, 3);36 int sum = 0;37 for (int n : nums) sum += n; // unboxing38 System.out.println("sum=" + sum);39 40 // Enum41 for (Level l : Level.values()) System.out.print(l + " ");42 System.out.println();43 44 // Static import45 System.out.println("PI=" + PI);46 }47}