?Lambda 基本語法
(parameters) -> expression
或
(parameters) -> { statements }
// 無參數
Runnable r = () -> System.out.println("Hello");// 單個參數(小括號可省略)
Consumer<String> c = s -> System.out.println(s);// 多參數 + 多語句
Comparator<Integer> comp = (a, b) -> {System.out.println("Comparing...");return Integer.compare(a, b);
};
?常見用途
集合處理(Stream)
list.stream().filter(s -> s.length() > 3).map(String::toUpperCase).forEach(System.out::println);
線程處理
new Thread(() -> System.out.println("Running")).start();
函數式接口實現
Function<String, Integer> strLen = s -> s.length();
?注意事項
做法 | 說明 |
---|---|
? 用于簡潔替代匿名類 | 比如 Runnable、Comparator |
? 搭配 Stream 使用 | filter/map/forEach 等鏈式處理 |
? 拆分復雜邏輯為方法引用 | 提高可讀性,如 MyClass::process |
? 小心異常處理 | Lambda 內要 catch checked exceptions |
? 適量使用 | 過度嵌套、復雜表達式應避免 |
寫小說也寫代碼,左手架空世界,右手現實邏輯。 ?
📚 歡迎來看博客,起點同筆名在寫小說,歡迎來找我玩。
https://my.qidian.com/author/433910170/