zoukankan      html  css  js  c++  java
  • lambda表达式的使用

    lambda表达式:

    //推导lambda表达式
    public class TestLambda {
        //静态内部类
        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();
    
            //局部内部类
             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();
        }
    }
    //定义一个函数式接口
    interface ILike{
        void lambda();
    }
    //实现类
    class Like implements ILike{
        @Override
        public void lambda() {
            System.out.println("I Like Lambda!");
        }
    }
    //运行结果:I Like Lambda!
    //		  I Like Lambda2!
    //		  I Like Lambda3!
    //		  I Like Lambda4!
    //		  I Like Lambda5!
    

    lambda的简化:

    public class TestLambda2 {
        public static void main(String[] args) {
            //ILove love = new ILove();
            //love.na("小明");
            Love l1 = (String name) ->{
                System.out.println(name);
            };
            l1.na("红红");
            Love l2 = (name) ->{
                System.out.println(name);
            };
            l2.na("绿绿");
            Love l3 = (name) ->{
                System.out.println(name);
            };
            l3.na("蓝蓝");
        }
    }
    
    interface Love{
        void na(String name);
    }
    class ILove implements Love{
    
        @Override
        public void na(String name) {
            System.out.println("下个就是你-->" + name);
        }
    }
    

    总结:

    1.  lambda表达式只有一行代码的时候才可以省掉花括号。
    2.  使用lambda表达式的前提是必须为函数接口。
    3.  当有参数时,可以去掉参数类型和小括号;当有多个参数可以同时去掉所有参数的类型,但是不能去掉小括号。
    

    刚刚参加工作,很有很多不懂不会的,发现错误,欢迎指正,谢谢!
  • 相关阅读:
    advanceInstaller安装文件的ICON
    advanceInstaller制作中文安装界面
    vc对话框程序运行时隐藏
    VC++6.0 打印调试信息
    js使用正则表达式实现文本框只能输入数字和小数点
    Flexbox制作CSS布局实现水平垂直居中
    微信js SDK接口
    QQ JS_SDk相关功能接口
    github代码管理工具的使用方法
    webpack打包压缩工具的使用方法
  • 原文地址:https://www.cnblogs.com/xd-study/p/13048357.html
Copyright © 2011-2022 走看看