JAVA Lambda表达式

无意间发现了一个从java8开始支持的好玩的东西——Lambda表达式,
或许这个东西能给我们带来便利,但是却又降低了代码的可读性。
lambda表达式能让你用一行表达式代替一个方法、甚至更多,但是通常使用在匿名内部类或者集合方面。

Lambda表达式的语法:

(int x, int y) -> x + y
() -> 42
(String s) -> { System.out.println(s); }

lambda表达式就和方法一样,提供了一个参数列表和一个使用这些参数的主体,可以是一个表达式或一个代码块。

第一个lambda表达式接收x和y这两个整形参数并返回它们的和
第二个lambda表达式不接收参数,返回整数'42'
第三个lambda表达式接收一个字符串并把它打印到控制台,不返回值

未细入研究,代码示例

package test;

import java.util.Arrays;
import java.util.List;

public class Demo {
    

    public static void main(String[] args) {
        
        String[] str = {"aaa", "bbb","ccc"};  
        List<String> arr =  Arrays.asList(str); 
        
        arr.forEach((arrs) -> System.out.println(arrs+","));
          
        arr.forEach(System.out::println);//双冒号操作符

        Runnable rn = () -> System.out.println("Hello world !");  
        
        rn.run();
            
        new Thread(() -> System.out.println("Hello world !")).start();  
    }

}

因为lambda表达式的类型是不确定的,它的类型是由其上下文推导而来。它可以是不同类的实例。(个人猜测与java10开始支持的局部变量类型var 类似)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容