• Java函数式接口(lambda表达式)


    函数式接口:有且只有一个抽象方法的接口,称为函数式接口

    当然也可以包含有其他方法(默认,静态,私有)

    函数式接口可以作为方法的参数,也可以作为方法的返回值

    注解 @FunctionalInterface 可以检测一个接口是否是函数式接口

    package com.fgy.demo;
    
    @FunctionalInterface
    public interface MyFunctionalInterface {
        public abstract void method();
    }
    package com.fgy.demo;
    
    public class Demo {
        public static void main(String[] args) {
            show(() -> System.out.println("---"));
        }
    
        private static void show(MyFunctionalInterface o) {
            o.method();
        }
    }

    使用lambda表达式可以提高程序性能:

      1.使用传统匿名内部类会生成额外的class文件,在性能上也有损耗。

      2.Lambda的特点:延迟加载,也可以提高性能。

    package com.fgy.demo2;
    
    public class Demo01Logger {
        public static void main(String[] args) {
            String msg1 = "Hello";
            String msg2 = "Word";
            String msg3 = "Java";
    
            showLog(2, msg1 + msg2 + msg3);
        }
    
        private static void showLog(int level, String message) {
            System.out.println("不满足条件也执行,也拼接字符串:" + message);
            if (level == 1) {
                System.out.println("满足条件:" + message);
            }
        }
    }

    package com.fgy.demo2;
    
    @FunctionalInterface
    public interface MessageBuilder {
        public abstract String builderMessage();
    }
    package com.fgy.demo2;
    
    public class Demo02Logger {
        public static void main(String[] args) {
            String msg1 = "Hello";
            String msg2 = "Word";
            String msg3 = "Java";
    
            showLog(2, () -> {
                System.out.println("不满足条件不执行");
                return msg1 + msg2 + msg3;
            });
        }
    
        private static void showLog(int level, MessageBuilder mb) {
            if (level == 1) {
                System.out.println(mb.builderMessage());
            }
        }
    }

  • 相关阅读:
    奥数视频
    提车应该检查哪?4S店都怕你检查这4个“雷区”,别等后悔才知道
    乒乓球拍子和套胶选择
    2018天津英华国际学校初中报名指南
    水瓶座出生日期是几月几号到几月几号
    乒乓球 世锦赛
    鸡蛋羹要怎么蒸才会更嫩?秘诀在这里
    家庭理财方法:知道这7个定律可以帮你赚更多钱!
    要知道股市有“三底”,估值底、政策底、市场底!
    DbMigration使用方法
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12174028.html
Copyright © 2020-2023  润新知