Java8 新特新对Lambda的支持 简单入门1

1.Lambda语法来代替匿名内部类的简单运用

        // 匿名的内部类
        Runnable runnable1 = new Runnable() {
            @Override
            public void run() {
                System.out.println("Runningwith out Lambda");
            }
        };
        new Thread(runnable1).start();

        // Lambda语法来代替匿名的内部类
        Runnable runnable2 = () -> {
            System.out.println("Runningfrom Lambda");
        };
        new Thread(runnable2).start();

        // Lambda语法来代替匿名的内部类
        new Thread(
                () -> System.out.println("In Java8, Lambda expression rocks !!")
        ).start();

2.Lambda语法的深入学习
注意:Lambda语法操作的接口只能存在一个抽象的函数

import java.awt.event.ActionEvent;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;

public class A {
    public static void main(String[] args) {
        // 无参数 无返回值
        Runnable runnable1 = () -> {
            System.out.println("Runningfrom Lambda");
        };

        // 无参数 有返回值
        Callable<String> callable1 = () -> {
            return "";
        };

        // 有参数 参数类型 明确
        ActionListener actionListener1 = (ActionEvent e) -> {
            System.out.println("actionListener1");
        };
        // 有参数 参数类型 不明确,Java编译器可以根据Lambda出现的上下文来推断出Lamdba表达式参数的类型
        ActionListener actionListener2 = (e) -> {
            System.out.println("actionListener2");
        };

        // 带返回值 且有多个参数 并且是 泛型的
        Comparator<Integer> comparator1 = (a, b) -> {
            return -1;
        };
    }
}

interface Runnable {
    void run();
}

interface Callable<V> {
    V call() throws Exception;
}

interface ActionListener {
    void actionPerformed(ActionEvent e);
}

// 如果要使用 Lambda表达式 接口中只能有一个 抽象方法
interface Comparator<T> {
    abstract int compare(T o1, T o2);

    // 来至Object类的非抽象方法 所有类都有的隐式方法,无关于接口
    // boolean equals(Object obj);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值