当前位置: 首页 > 知识库问答 >
问题:

同时获得两个属性的最佳方法

秦联
2023-03-14

假设您有分层数据,并且希望获得单独属性的合并值,那么最优雅的,或者说groovy的方法是什么呢?

def junitResultList = [
    [
        name: "Testsuite A",
        children: [
            failedTests: ["Test 1", "Test 2"],
            skippedTests: []
        ]
    ],
    [
        name: "Testsuite B",
        children: [
            failedTests: ["CursorTest"],
            skippedTests: ["ClickTest", "DragNDropTest"]
        ]
    ]
]
(junitResultList*.children*.failedTests + 
 junitResultList*.children*.skippedTests).flatten()
(junitResultList*.children*.findAll {
    ['skippedTests', 'failedTests'].contains(it.key)
})*.values().flatten()

共有1个答案

公西浩
2023-03-14

您可以将初始表达式简化为如下所示:

junitResultList.children.collect { it.failedTests + it.skippedTests }.flatten()

junitResultList.children.collect { [it.failedTests, it.skippedTests] }.flatten()
 类似资料:
  • 问题内容: 在我的应用程序体系结构中,我通常将对象或对象列表从数据访问层通过服务层发送到Web层,在服务层中,这些对象从DAO对象转换为DTO对象,反之亦然。Web层无法访问DAO对象,并且DAO层不使用DTO。 为了演示,我通常将代码编写为: 这里的用户是数据库实体: 这是UserDTO: 所以我想知道这是否是在两个对象之间复制属性的唯一方法。我想我不确定。另外,我也在使用lambdaj,因此此

  • 在我的应用程序架构中,我通常通过服务层将对象或对象列表从数据访问层发送到web层,在服务层中,这些对象从DAO对象转换为DTO对象,反之亦然。web层无权访问DAO对象,DAO层也不使用DTO。 为了演示,我通常将代码编写为: 这里的用户是数据库实体: 这是用户DTO: 所以我想知道这是否是在两个对象之间复制属性的唯一方法。我想我不确定。此外,我正在使用lambdaj,那么此API中是否有一种方法

  • 问题内容: 我需要比较两个对象(同一类的实例)中的许多字段,并做一些记录和更新,以防出现差异。元代码可能看起来像这样: 具有所有比较的代码非常简洁,我想以某种方式使其更紧凑。如果我有一个方法可以将setter和getter的调用作为参数并在所有字段中调用,那将是很好的,但是不幸的是,这对于Java是不可能的。 我提出了三个选择,每个选择都有其自身的缺点。 1.使用反射API来找出getter和se

  • 问题内容: 插入行的最佳方法是什么? 我知道和和,但不明白连接到每个利弊。 有人可以解释这些差异以及何时使用它们吗? 问题答案: 返回在所有范围内为当前会话中的任何表生成的最后一个标识值。 您需要小心 ,因为它是跨作用域的。您可以从触发器获取值,而不是当前语句。 返回为当前会话和当前范围中的任何表生成的最后一个标识值。 通常,您要使用什么 。 返回在任何会话和任何作用域中为特定表生成的最后一个标识

  • 这不只是为每个属性做一堆if/else if用例吗?

  • 问题内容: 我正在寻找获取上个月第一天和最后一天的最佳方法。我使用它们进行SQL查询以获取上个月的统计信息。 我认为这是最好的方法,更优化但又不那么全面,有人有另一种方法可以做到这一点吗? 谢谢!! 问题答案: 在PHP 5.3中,您可以使用类: