Технология отложенной загрузки Lambda

Технология отложенной загрузки Lambda

Строка сращивания обычного кода

Пример кода

public class Demo01Logger {
    public static void show(int i,String message)
    {
        if (i==1)
        System.out.println(message);
    }

    public static void main(String[] args) {
        String message1="Hello";
        String message2="world";
        String message3="world";
        show(1,message1+message2+message3);
        show(2,message1+message2+message3);
    }
}

обнаружена проблема:

Я обнаружил проблему потери производительности. При
вызове метода show второй переданный параметр представляет собой склеенную строку.
Строка склеивается перед методом show. В
методе show, если уровень журнала не равен 1,
склейка не будет возвращена. После строки, поэтому строка была потрачена впустую сращивание

Использование лямбда-функционального интерфейса для объединения строкового кода

Определите функциональный интерфейс

Преимущество:

Используйте лямбда-выражения в качестве параметров для передачи, просто передайте параметры методу show.
Только при соблюдении условий и уровне журнала 1
будет вызван метод в интерфейсе show, и
строка будет склеена.
Если условия не соблюдены, журнал будет Если уровень не равен 1
, метод, показанный в интерфейсе, не будет выполняться,
поэтому код склейки не будет выполняться,
поэтому потери производительности не будут потеряны.

@FunctionalInterface
public interface Demo02Logger {
    String show();
}

Определите класс для выполнения требований

import java.util.logging.Logger;

public class Demo02LoggerLambda {
    public  static  void show(int i, Demo02Logger logger)
    {
        if (i==1)
            System.out.println(logger.show());
    }
    public static void main(String[] args) {
        String message1="Hello";
        String message2="world";
        String message3="world";
        show(1,()->{return message1+message2+message3;});

        show(2,()->{
            System.out.println("不满足条件不执行!!!");
            return message1+message2+message3;});

    }
}

рекомендация

отblog.csdn.net/tangshuai96/article/details/104265606