Lambda基本使用方法(从代码理解定义)

   日期:2020-11-04     浏览:113    评论:0    
核心提示:1、Lambda表达式​ Lambda 表达式是一种匿名函数(对 Java 而言这并不完全正确,但现在姑且这么认为),是JDK1.8新增特性,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。​ 你可以将其想做一种速记,在你需要使用某个方法的地方写上它。当某个方法只使用一次,而且定义很简短,使用这种速记替代之尤其有效,这样,你就不必在类中费力写声明与方法了。1.1基本方实现类法首先看一下基础的实现类,一般定义接口与实现接口的三种方法(一般实现类,静态内部类,局部内部类)。pack

1、Lambda表达式

​ Lambda 表达式是一种匿名函数(对 Java 而言这并不完全正确,但现在姑且这么认为),是JDK1.8新增特性,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。

​ 你可以将其想做一种速记,在你需要使用某个方法的地方写上它。当某个方法只使用一次,而且定义很简短,使用这种速记替代之尤其有效,这样,你就不必在类中费力写声明与方法了。

1.1基本方实现类法

首先看一下基础的实现类,一般定义接口与实现接口的三种方法(一般实现类,静态内部类,局部内部类)。

package SunLambda;
//对接口实现类进行调用。
public class Lambda_01 { 
    //静态内部类
     static class ILike2 implements LambdaSun{ 
        @Override
        public void Lambda() { 
            System.out.println("学习Lambda让我快乐!2");
        }
    }
    public static void main(String[] args) { 
        ILike iLike = new ILike();
        iLike.Lambda();
        ILike2 iLike2 = new ILike2();
        iLike2.Lambda();

        //局部内部类
        class ILike3 implements LambdaSun{ 
            @Override
            public void Lambda() { 
                System.out.println("学习Lambda让我快乐!3");
            }
        }
        ILike3 iLike3 = new ILike3();
        iLike3.Lambda();
    }
}

//定义接口
interface LambdaSun{ 
    void Lambda();
}

//定义接口实现类
class ILike implements LambdaSun{ 
    @Override
    public void Lambda() { 
        System.out.println("学习Lambda让我快乐!");
    }
}

为什么要用lambda?

使用lambda表达式可对一个接口进行简洁的实现。

lambda对接口的要求

要求接口中定义的必须实现的抽象方法只能有一个(必须要实现的,不是default修饰的)。

1.2lambda简化无参构造方法

package SunLambda;

public class Lambda_02 { 


    public static void main(String[] args) { 
        //匿名内部类,没有类的名称,必须借助接口或者是父亲
        LambdaSun1 lambda = new LambdaSun1() { 
            @Override
            public void Lambda() { 
                System.out.println("学习Lambda让我快乐!5");
            }
        };
        lambda.Lambda();
        //用Lambda方法进行简化

        LambdaSun1 lambd = () ->{ 
                System.out.println("学习Lambda让我快乐!6");
        };
        lambd.Lambda();
        LambdaSun1 lambd1;

        //用Lambda方法进行简化简化2
        lambd1= ()-> System.out.println("学习Lambda让我快乐!7");
        lambd1.Lambda();

    }

}
//定义接口
interface LambdaSun1{ 
    void Lambda();
}


Lambda实现接口,是有匿名内部类一步步实现的。

注:

1、Lambda表达式只有一行代码的情况下才能简化为一行,多行的话必须使用代码块(也就是{});

2、前提是接口是函数式接口;

3、接口多个参数类型可以去掉参数类型,要去掉都去掉,但必须加括号。

1.3Lambda简化有参数方法

package SunLambda;

public class Lambda_03 { 



    public static void main(String[] args) { 
    //匿名内部类
        LambdaSun2 lambdasun = new LambdaSun2(){ 
            @Override
            public void lambda(int a,int b,int c) { 
                System.out.println(a+b+c);
            }
        };
        lambdasun.lambda(1,1,1);
        LambdaSun2 lambda;
        //lambda简化1
        lambda =(int a,int b,int c)->{ 
            System.out.println(a+b+c);
        };
        lambdasun.lambda(2,2,2);
        //lambda简化2
        lambda =( a,b,c)->{ 
            System.out.println(a+b+c);
        };
        lambdasun.lambda(3,3,3);
        //lambda简化3
        lambda=( a,b,c)-> System.out.println(a+b+c);
        lambdasun.lambda(4,4,4);
    }
}
interface LambdaSun2{ 
    void lambda(int a,int b,int c);
}

注:接口多个参数类型可以去掉参数类型,要去掉都去掉,但必须加括号。

自学习于哔哩哔哩狂神说JAVA(侵删);

作为自己的笔记,欢迎大家斧正!

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服