Tecnología de carga diferida de Lambda

Tecnología de carga diferida de Lambda

Cadena de empalme de código ordinario

Ejemplo de código

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);
    }
}

problema encontrado:

Encontré un problema de pérdida de rendimiento. Cuando
se llama al método show, el segundo parámetro que se pasa es una cadena empalmada. La
cadena se empalma antes del método show. En el
método show, si el nivel de registro no es 1,
no se devolverá el empalme. Después de la cuerda, entonces la cuerda se desperdició empalmando

Utilice la interfaz funcional lambda para realizar el empalme de código de cadena

Definir una interfaz funcional

Ventaja:

Use expresiones lambda como parámetros para pasar, simplemente pase los parámetros al método show.
Solo cuando se cumplan las condiciones y el nivel de registro sea el nivel 1, se
llamará al método en la interfaz show y
se empalmará la cadena.
Si no se cumplen las condiciones, el registro es Si el nivel no es 1,
el método que se muestra en la interfaz no se ejecutará,
por lo que el código de empalme no se ejecutará,
por lo que no hay pérdida de rendimiento.

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

Definir una clase para cumplir con los requisitos.

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;});

    }
}

Supongo que te gusta

Origin blog.csdn.net/tangshuai96/article/details/104265606
Recomendado
Clasificación