栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA lambda表达式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA lambda表达式

    lambda表达式是干什么的?
    	实现接口,快速拿到接口的对象
    
    长什么样?
    	new TestLambda().studentSayHello( ()-> System.out.println("hello") );
    	或者这样
    	Student student = TestLambda::hello;
    
    对接口有什么要求?
    	接口只能有一个待实现的方法
    	静态或者default方法可以有很多,它们不需要被实现
    
    自定义并使用lambda表达式
    //1.只有一个普通方法 的 接口
    interface Student{
        void sayHello();
    }
    
    public class TestLambda{
    
        //2.有一个 以接口作为参数的方法
        void studentSayHello(Student student){
            student.sayHello();
        }
    
        public static void main(String[] args) {
    
            //3.调用方法,括号里面的就是lambda表达式
            // 基本形式是 ()->{}
            // 小括号里面的是接口里面方法的参数 大括号里面的是具体语句
            //当方法参数 或者 语句只有一条时 括号可以省略
            new TestLambda().studentSayHello( ()-> System.out.println("hello") );
        }
    }
    
    把某个构造方法充当未实现方法体
    无论哪个类的构造方法都行
    注意返回值与方法参数要一样
    
    //1.只有一个普通方法 的 接口
    interface Student{
        void sayHello();
    }
    
    public class TestLambda{
    
        //2.这个构造方法 和上面那个接口的方法 返回值和参数都一样,
        // 接下来我要用这个 构造方法去实现上面那个接口
        TestLambda(){
            System.out.println("hellow");
        }
    
        public static void main(String[] args) {
            //3.用构造方法的方法体去实现接口
            Student student = TestLambda::new;
            student.sayHello();
        }
    }
    
    用静态方法充当未实现的方法体
    	 注意方法参数与返回值要一样
    
     //1.只有一个普通方法 的 接口
    interface Student{
        void sayHello();
    }
    
    public class TestLambda{
    
        //2.这个静态方法 和上面那个接口的方法 返回值和参数都一样,
        // 接下来我要用这个 静态方法去实现上面那个接口
        static void hello(){
            System.out.println("hellow");
        }
    
        public static void main(String[] args) {
            //3.用静态方法的方法体去实现接口
            Student student = TestLambda::hello;
            student.sayHello();
        }
    }
    
    使用lambda表达式一些情形
 		//1.在list map set 的forEach方法中
        List list = new ArrayList();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.forEach((item)-> System.out.println(item));

        //2.在用runnable接口创建线程中,这里创建了一个线程并启动
        new Thread(()-> System.out.println("快速实现runnable接口")).start();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号