美文网首页
Lambda语法

Lambda语法

作者: 风雪_夜归人 | 来源:发表于2023-11-28 21:47 被阅读0次

    1.前提条件是一个接口,且接口中必须只能有一个方法

    配置类

    public interface Father {
        public abstract Integer zhagongsi(String str );
    }
    

    测试方法

        //原始写法
        Father father = new Father() {
            @Override
            public Integer zhagongsi(String str) {
                return Integer.parseInt(str);
            }
        };
    

    因为匿名类的类型、方法名、方法返回类型、方法权限修饰符 都知道,所以我们可以省去类的结构变成如下结构

        Father father =
            (String str) -> {
                return Integer.parseInt(str);
            };
    

    又因为如果只有一个参数的话,方法参数的括号都可以不用,以及方法参数的类型

        Father father =
             str -> {
                return Integer.parseInt(str);
            };
    

    如果接口中实现的方法代码只有一行的话,方法结构也可以去掉,因为只有一行方法返回类型也知道,retrun关键字也可以去掉

    Father father = str ->  Integer.parseInt(str);
    

    因为该参数也是方法体中一个方法(普通方法)的参数,也可以简写成

    Father f =  Integer::parseInt;
    

    测试方法

        Father f1 = new Father() {
            @Override
            public Integer zhagongsi(String str) {
                return new Integer(str);
            }
        };
    

    该参数也是方法体中一个方法(构造方法)的参数,也可以简写成

    Father f2 = Integer::new;
    

    总结:

    1.Lambda语法优势是写法简单,但是不便于阅读
    2.简写的宗旨是弱化了类的结构,减少类文件编写,更关注于逻辑编写(接口方法传入什么参数,如何使用,最后给什么出参)

    相关文章

      网友评论

          本文标题:Lambda语法

          本文链接:https://www.haomeiwen.com/subject/jjyxgdtx.html