美文网首页
JAVA Lambda表达式

JAVA Lambda表达式

作者: 启灵Alex | 来源:发表于2018-09-20 14:44 被阅读16次

    无意间发现了一个从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 类似)

    相关文章

      网友评论

          本文标题:JAVA Lambda表达式

          本文链接:https://www.haomeiwen.com/subject/rqqnnftx.html