gpt4 book ai didi

groovy - 使用 gstring 访问列表属性元素

转载 作者:行者123 更新时间:2023-12-01 11:39:26 28 4
gpt4 key购买 nike

使用 GStrings 可以访问对象的属性,包括嵌套属性。但是如何访问列表属性中的第 n 个元素呢?

class Foo {
List<Bar> elements
}
class Bar {
String version
}

我需要使用 GString 访问特定索引的 Foo.elements 对象中的版本属性。尝试了以下代码但没有成功。

def property = "elements[0].version"
fooObject."$property" fails to identify the property

最佳答案

所以我认为可以通过三种方式解决这个问题,这取决于允许的灵 active 有多大

class Foo {
List<Bar> elements
}
class Bar {
String version
}

假设 fooObjectFoo 的对象,例如:

def fooObject = new Foo(elements:[new Bar(version:1), new Bar(version:2)])
  1. 如果这对你来说可能:

    println fooObject."elements"[1]."version"
  2. 否则,将所有内容放入一个字符串中,然后进行插值:

    println "${fooObject.elements[1].version}"
  3. 最终,如果以上两者都不适合您:

    def property='elements[1].version'
    def expr = 'fooObject.' + property
    println Eval.me('fooObject', fooObject, expr)

最后一个使 fooObject 可用作正在评估的表达式的 fooObject 并评估表达式。

关于groovy - 使用 gstring 访问列表属性元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993660/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com