java Lamada函数

2019-10-30  本文已影响0人  9吧和9说9话

几个概念

  1. 匿名内部类(待补充)
  2. 函数式接口

接口定义中,有且只有一个抽象方法(可以包含多个非抽象方法)

  1. Lambda表达式

用来简化函数式接口的一中java语法

示例代码

package com.company;

// 函数式接口:接口中有且只有一个抽象方法,可以包含其他非抽象方法
//
interface GreetingService {
    public abstract void sayHello();
}
// Lambda 表达式
// 相关概念:匿名内部类、函数接口
public class Lambda {
    public static void main(String[] args) {
        // Thread 接收一个 Runnable类型的
        // new Runnable() 称为匿名内部类

        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("run");
            }
        }).start();

        // Lambda 表达式
        // 能够简化匿名内部类的用法
        new Thread(()->{
            System.out.println("Thread 2 run");
        }).start();

        // jdk 7之前的写法
        GreetingService greetingService = new GreetingService() {
            @Override
            public void sayHello() {
                System.out.println("hello interface");
            }
        };
        greetingService.sayHello();

        // jdk8 之后可以这么写
        GreetingService greetingService1 = ()->System.out.println("hello Lambda");
        greetingService1.sayHello();
    }
}

上一篇 下一篇

猜你喜欢

热点阅读