简体   繁体   中英

How to use lambda expression in groovy script?

I am trying to write a groovy script code, but found out that groovy script does not support lambda expressions. Can someone help me convert this piece of code so that it works for groovy script as well?

        if(CollectionUtils.isNotEmpty(orderModel.getFreeProductSets())){
        orderModel.getFreeProductSets().forEach(orderFreeProductSetModel -> {
            if(CollectionUtils.isNotEmpty(orderFreeProductSetModel.getFreeProducts())){
                modelService.removeAll(orderFreeProductSetModel.getFreeProducts());
            }
            else{
                System.out.println("no entry found for orderFreeProductSetModel");
            }
        });
        modelService.removeAll(orderModel.getFreeProductSets());
    }
    else{
        System.out.println("FreeProductSets is empty");
    }

Thank you.

You can try something like this:

if (CollectionUtils.isNotEmpty(orderModel.getFreeProductSets())) {
    orderModel.getFreeProductSets().each{ orderFreeProductSetModel ->
        if (CollectionUtils.isNotEmpty(orderFreeProductSetModel.getFreeProducts())) {
            modelService.removeAll(orderFreeProductSetModel.getFreeProducts());
        } else {
            System.out.println("no entry found for orderFreeProductSetModel");
        }
    };
    modelService.removeAll(orderModel.getFreeProductSets());
} else {
    System.out.println("FreeProductSets is empty");
}

You just needed to use foreach{} instead of foreach()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM