lambda

函数式接口:有且只有一个抽象方法

package com.newlambda;

/**
 * 推导lambda表达式
 */
public class TestLambda {

    //3.静态内部类
    static class Like2 implements ILike{
        @Override
        public void lambda() {
            System.out.println("i like lambda2");
        }
    }


    public static void main(String[] args) {
        ILike like = new Like();        //多态:继承,复写,父类执向子类
        like.lambda();

        like = new Like2();
        like.lambda();

        //4.局部内部类
        class Like3 implements ILike{
            @Override
            public void lambda() {
                System.out.println("i like lambda3");
            }
        }

        like = new Like3();
        like.lambda();

        //5.匿名内部类,没有类的名称,必须借助接口或父类
        like = new ILike() {
            @Override
            public void lambda() {
                System.out.println("i like lambda4");
            }
        };

        like.lambda();

        //6.用lambda简化
        like = () -> System.out.println("i like lambda5");

        like.lambda();
    }
}

//1.定义一个函数式接口
interface ILike{
    void lambda();
}

//2.实现类
class Like implements ILike{
    @Override
    public void lambda() {
        System.out.println("i like lambda");
    }
}
package com.newlambda;

public class Testlambda2 {
    public static void main(String[] args) {
        ILove like = new Love();
        like.love(2);
    }
}


interface ILove{
    void love(int a);
}

class Love implements ILove{
    @Override
    public void love(int a) {
        System.out.println("i love you -->"+a);
    }
}
package com.newlambda;

public class Testlambda2 {


    static class Love implements ILove{
        @Override
        public void love(int a) {
            System.out.println("i love you -->"+a);
        }
    }

    public static void main(String[] args) {
        ILove like = new Love();
        like.love(2);
    }
}


interface ILove{
    void love(int a);
}

package com.newlambda;

public class Testlambda2 {




    public static void main(String[] args) {
        class Love implements ILove{
            @Override
            public void love(int a) {
                System.out.println("i love you -->"+a);
            }
        }

        ILove like = new Love();
        like.love(2);
    }
}


interface ILove{
    void love(int a);
}

package com.newlambda;

public class Testlambda2 {

    public static void main(String[] args) {

        ILove like = new ILove() {
            @Override
            public void love(int a) {
                System.out.println("i love you -->"+a);
            }
        };
        like.love(2);
    }
}


interface ILove{
    void love(int a);
}

package com.newlambda;

public class Testlambda2 {

    public static void main(String[] args) {

        ILove like = (int a) -> {
                System.out.println("i love you -->"+a);
            };

        like.love(2);
    }
}


interface ILove{
    void love(int a);
}

package com.newlambda;

public class Testlambda2 {

    public static void main(String[] args) {

        //简化lambda
        ILove like = (int a) -> {
                System.out.println("i love you -->"+a);
            };


        //简化1;参数类型
        like = (a) -> {
            System.out.println("i love you -->"+a);
        };

        //简化2:简化括号
        like = a -> {
            System.out.println("i love you -->"+a);
        };

        //简化3:去掉花括号
        like = a -> System.out.println("i love you -->"+a);

        like.love(521);
        
        //总结:
            //lambda表达式只有一行代码的时候才可以简化成一行,如果有多行就必须用代码块包裹{}
            //前提是函数式接口
            //多个参数可以去掉参数类型,要去掉就都去掉
            //多个参数必须加上括号
    }
}


interface ILove{
    void love(int a);
}

package com.newlambda;

public class Testlambda2 {

    public static void main(String[] args) {

        
        ILove like = (a,b,c) -> {
            System.out.println("i love you -->"+a);
            System.out.println("i love you -->"+b);
        };

        like.love(520,502,250);

        //总结:
            //lambda表达式只有一行代码的时候才可以简化成一行,如果有多行就必须用代码块包裹{}
            //前提是函数式接口
            //多个参数可以去掉参数类型,要去掉就都去掉,
            //多个参数必须加上括号
    }
}


interface ILove{
    void love(int a,int b,int c);
}

posted @   好12  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示