import java.util.*; import java.util.stream.Collectors; /** * Java 10 新特性示例:局部变量类型推断 (Local-Variable Type Inference) * 使用 var 关键字让编译器自动推断局部变量类型 * * 这是Java 10最显著的特性之一,简化了代码编写,同时保持了Java的强类型特性 */ public class VarExample { public static void runExample() { System.out.println("=== Java 10 局部变量类型推断示例 ==="); // 基本类型推断 var message = "Hello, Java 10!"; // 推断为 String var number = 42; // 推断为 int var decimal = 3.14159; // 推断为 double var flag = true; // 推断为 boolean System.out.println("String类型: " + message); System.out.println("int类型: " + number); System.out.println("double类型: " + decimal); System.out.println("boolean类型: " + flag); // 集合类型推断 var list = new ArrayList(); // 推断为 ArrayList list.add("项目1"); list.add("项目2"); list.add("项目3"); System.out.println("\nArrayList内容:"); for (var item : list) { // 在增强for循环中使用var System.out.println("- " + item); } // Map类型推断 var map = new HashMap(); // 推断为 HashMap map.put("一", 1); map.put("二", 2); map.put("三", 3); System.out.println("\nHashMap内容:"); map.forEach((key, value) -> System.out.println(key + " -> " + value)); // 流处理中使用var var numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); var evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println("\n流处理结果:"); evenNumbers.forEach(System.out::println); // 在try-with-resources语句中使用var try (var scanner = new Scanner(System.in)) { System.out.println("\n在try-with-resources中使用var"); // var scanner = new Scanner(System.in); // 正常工作 } System.out.println("\n=== 局部变量类型推断示例结束 ===\n"); } }