Maison >Java >javaDidacticiel >Comment implémenter une évaluation paresseuse en Java

Comment implémenter une évaluation paresseuse en Java

WBOY
WBOYavant
2023-05-04 12:28:061182parcourir

Explication

1. L'évaluation paresseuse est le processus consistant à retarder l'évaluation d'une expression jusqu'à ce qu'elle soit nécessaire. Java est une évaluation d'affectation strictement immédiate.

2. Il peut être réécrit dans une version évaluée paresseusement en utilisant des expressions lambda et des fonctions d'ordre supérieur.

Exemple

public class LazySample {
    public static void main(String[] args) {
        //这是一个lambda表达式,表现为闭包
        UnaryOperator<Integer> add = t -> {
            System.out.println("executing add");
            return t + t;
        };
      //这是一个lambda表达式,表现为闭包
        UnaryOperator<Integer> multiply = t -> {
            System.out.println("executing multiply");
            return t * t;
        };
        //传递Lambda闭包而不是普通函数
        System.out.println(addOrMultiply(true, add, multiply, 4));
        System.out.println(addOrMultiply(false, add, multiply, 4));
    }
 
    //这是一个高阶函数
    static <T, R> R addOrMultiply(
            boolean add, Function<T, R> onAdd,
            Function<T, R> onMultiply, T t
    ) {
        // Java的?会懒惰计算表达式,因此仅执行所需的方法
        return (add ? onAdd.apply(t) : onMultiply.apply(t));
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer