首页 > 编程语言 > 详细

Java基础14-从外部类到lambda

时间:2021-01-21 16:35:43      阅读:28      评论:0      收藏:0      [点我收藏+]

记载从外部类到静态内部类、局部内部类、匿名内部类最后到lambda的简化过程。
函数式接口:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。(非抽象方法需要default关键字)


// 1. 定义函数式接口
interface SayLambda{
    void sayLambda();
}

// 2.外部类
class Say1 implements SayLambda{

    @Override
    public void sayLambda() {
        System.out.println("外部类!");
    }
}

public class TestLambda {
    static class Say2 implements SayLambda{
        @Override
        public void sayLambda() {
            System.out.println("静态内部类!");
        }
    }

    public static void main(String[] args) {
        Say1 say1 = new Say1();
        say1.sayLambda();

        Say2 say2 = new Say2();
        say2.sayLambda();

        class Say3 implements SayLambda{
            @Override
            public void sayLambda() {
                System.out.println("局部内部类!");
            }
        }
        Say3 say3 = new Say3();
        say3.sayLambda();

        SayLambda say4 = new SayLambda() {
            @Override
            public void sayLambda() {
                System.out.println("匿名内部类!");
            }
        };
        say4.sayLambda();

        SayLambda say5 = ()->{
            System.out.println("lambda!");
        };
        say5.sayLambda();
    }

}

对lambda的简化

interface SaySomethingElse{
    void saySomething(int a);
}
public class TestLambda {
    static class Say2 implements SayLambda{
        @Override
        public void sayLambda() {
            System.out.println("静态内部类!");
        }
    }

    public static void main(String[] args) {
        //对lambda的简化
        // 简化前
        SaySomethingElse saySomethingElse = (int a)->{
            System.out.println("Something else "+ a);
        };
        saySomethingElse.saySomething(10);
//        去掉参数类型,去掉括号,去掉花括号
        saySomethingElse = a ->             System.out.println("Something else "+ a);
        saySomethingElse.saySomething(10);
    }

}

Java基础14-从外部类到lambda

原文:https://www.cnblogs.com/tanjr/p/14307675.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!