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

刚开始看到这个的时候,觉得这是啥啊?根本就不是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();
}

运行结果:
运行结果

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)
发布了170 篇原创文章 · 获赞 55 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/w695050167/article/details/103695109