美文网首页
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