美文网首页干货分享
什么是lambda表达式

什么是lambda表达式

作者: 小白菜aaa | 来源:发表于2020-09-21 14:12 被阅读0次

    简介

    本文主要概括了其lambda表达式的用法和一个操作实例,希望大家看完这篇文章能对你有些帮助。

    lambda表达式

    是什么

    是一个没有名字的函数

    用法

    无参数,不可省略参数的括号

    () -> System.out.println("lambda");
    
    

    一个参数,可省略参数外的括号

    x -> System.out.println(x);
    
    

    多个参数,不可省略参数的括号

    (x, y) -> System.out.println(x + y);
    
    

    单条语句,可省略语句的大括号

    () -> System.out.println("lambda");
    
    

    多条语句,语句需要加大括号

    () -> {
            System.out.println("lambda1");
            System.out.println("lambda2");
          };
    
    

    参数类型可省略,根据要实现的接口的方法能推导出来

    如果只有一个语句,也可省略return关键字

    示例

    无返回值无参数

    只有一个抽象方法的接口

    public interface FunctionInterface{
    
        void play();
    
    }
    
    

    测试类

    public class Lambda{
    
        public static void main(String[] args){
    
            // 匿名内部类的写法
            FunctionInterface functionInterface1 = new FunctionInterface(){
                @Override
                public void play(){
                    System.out.println("a");
                }
            };
            functionInterface1.play();
    
            // lambda表达式的写法
            FunctionInterface functionInterface2 = () -> System.out.println("a");
            functionInterface2.play();
    
        }
    
    }
    
    

    输出结果

    a
    a
    
    

    无返回值有参数

    public interface FunctionInterface{
    
        void play(String s);
    
    }
    
    
    public class Lambda{
    
        public static void main(String[] args){
    
            // 匿名内部类的写法
            FunctionInterface functionInterface1 = new FunctionInterface(){
                @Override
                public void play(String s){
                    System.out.println(s);
                }
            };
            functionInterface1.play("a");
    
            // lambda表达式的写法
            FunctionInterface functionInterface2 = (s) -> System.out.println(s);
            functionInterface2.play("a");
    
        }
    
    }
    
    
    a
    a
    
    

    有返回值无参数

    public interface FunctionInterface{
    
        int play();
    
    }
    
    
    public class Lambda{
    
        public static void main(String[] args){
    
            // 匿名内部类的写法
            FunctionInterface functionInterface1 = new FunctionInterface(){
                @Override
                public String play(){
                   return "a";
                }
            };
            System.out.println(functionInterface1.play());
    
            // lambda表达式的写法,此处可省略return,如果要用return,需要加大括号
            FunctionInterface functionInterface2 = () -> "a";
            // FunctionInterface functionInterface2 = () -> {return "a"};
            System.out.println(functionInterface2.play());
    
        }
    
    }
    
    
    a
    a
    
    

    总结

    lambda表达式代替了匿名内部类的写法

    参数、返回值类型和要实现的接口的方法参数、返回值类型对应,语句表达式就是方法体

    本文到这里就结束了,感谢看到最后的朋友,都看到最后了,点个赞再走啊,如有不对之处还请多多指正。

    相关文章

      网友评论

        本文标题:什么是lambda表达式

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