欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《Java JDK1.8新特性》---Lambda表达式

程序员文章站 2022-06-07 13:21:53
...

刚开始看到这个的时候,觉得这是啥啊?根本就不是java了嘛。不要学这个,我要写正宗java代码。看着就别扭。真正接触之后,真香!!!
下面的叙述都是个人理解,简单表达。有错误的地方还请指正。

“->”的使用

1.没有参数的使用方法

public static void main(String[] args) {

    Thread t1 = new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println(Thread.currentThread().getId());
        }
    });

    // () -> {} 简直不要太方便,一句话搞定.
    Thread t2 = new Thread(() -> {
        System.out.println(Thread.currentThread().getId());
    });

    t1.start();
    t2.start();
}

运行结果:
《Java JDK1.8新特性》---Lambda表达式

2.有参数的使用方法

x -> System.out.println(x)
(x) -> {System.out.println(x);}
上面两种方法都是只有一个参数的时候。多个也比较简单。

(x, y) -> System.out.println(x + y)

注意如果有返回值,一句话的话可以直接是最后结果返回值。如果是代码块则需要带有return返回对应类型

引用W3C

// 1. 不需要参数,返回值为 5  
() -> 5  
  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y  
  
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)
相关标签: Java