groovy 的inject()方法使用简例

本文介绍了Groovy的inject()方法如何用于库存统计的场景。利用该方法的累加特性,可以简洁地计算图书馆中所有丛书的总库存,即使每套丛书包含不同数量的册数和库存。通过闭包参数处理复杂的数据结构,无需额外变量,实现高效计算。
摘要由CSDN通过智能技术生成

inject()方法有强大的累计功能,以闭包作为参数处理一个数据结构并返回一个值。inject()方法的第一个参数是第二个参数(闭包)的立即返回值,无需引入额外的变量就能实现累积计算,例如统计图书馆所有丛书库存,每套丛书有不同套数,每套丛书有不同册数和库存数量,业务模型如下

public class Library {
    private List<BookSeries> bookSeriesList;

// getter and setter
}

public class BookSeries {
    private int suitNum;
    private List<Book> books;
// getter and setter
  
}

public class Book {
    private String name;
    private int store;
    private double price;

    // getter and setter
}
因了inject()的强大累积计算功能,我写了如下测试:

class BookSeriesTest extends Specification {

    def "验证丛书总数计算正确"() {
        given: "图书馆丛书列表"
        def library = new Library(
                bookSeriesList: [
                        new BookSeries(suitNum: 1, books: [
                                new Book(name: "水浒传(上ÿ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值