- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 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
}
假设 fooObject
是 Foo
的对象,例如:
def fooObject = new Foo(elements:[new Bar(version:1), new Bar(version:2)])
如果这对你来说可能:
println fooObject."elements"[1]."version"
否则,将所有内容放入一个字符串中,然后进行插值:
println "${fooObject.elements[1].version}"
最终,如果以上两者都不适合您:
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/
我有一个这样的字符串 def fileName = "$prefix-$currDate.gz" .gz 是文件的扩展名,而不是属性,我得到的异常是没有这样的属性。 有办法逃脱吗?我试过了\。这没有用
很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center . 10年前关
不应跨越一定数量的字符/行(例如 80 个字符)的 Groovy 错误消息的标准(或最佳实践)是什么? 考虑以下(工作正常) throw new IOException("""\ A
我正在使用 groovy 扩展遗留脚本系统。源脚本是“类 java”的,因此它主要解析为带有少量预处理的 groovy 脚本。 我使用 invokeMethod() 和 missingMethod()
您好,如何使用数据库存储的 GString 定义来动态生成数据。如果代码中定义了格式,我可以使用 GString 来选择行属性 code_format = "${-> row.ACCOUNT} ${-
在“Groovy and Grails recipes”一书中,我使用了以下代码片段: String HelloLanguage = "def hello(language) {return \"He
我在映射中存储了一些 GString,并尝试在运行时评估它们: //this is in begginning of my class or controller or service and is
我尝试使用 gstring 访问嵌套字段,但它抛出异常 groovy.lang.MissingPropertyException 我有两个类 Class Person{ Address addr
我有一个 Groovy 脚本。在 Java 中,我通过 Binding 提供: binding.put( 'a','Hello') 我通过 GroovyShell 运行脚本,结果是: print "$
使用 GStrings 可以访问对象的属性,包括嵌套属性。但是如何访问列表属性中的第 n 个元素呢? class Foo { List elements } class Bar { Stri
我想学习如何在 GString 中转义点,因此 groovy (1.8) 不会将其视为 sql.execute 中变量的一部分。我有以下代码: Map dbSettings = [schemaNa
我有以下代码: def test( name ) { s = ['$','{','n','a','m','e','}'].join() println s instanceof St
Groovy 有一个 GString 的概念。我可以这样写代码: def greeting = 'Hello World' println """This is my first program ${
使用以下代码片段我无法从 map 中检索 gString: def contents = "contents" def gString = "$contents" def map = [(gStrin
我想存储一个用户可配置的 GString ,该 GString 将绑定(bind)到一个域类,但我在找到一个很好的解决方案时遇到了问题。 示例( 概念/伪/非工作 ) class Person{
我们是否有硬性能数据证明单引号相对于双引号的优势?大多数人会更习惯使用双引号。 我知道当我们计算表达式时可以使用GString,并执行惰性计算 最佳答案 这里是 09 年完成的一些测试的链接: htt
如果我只使用 "/home/user/.some/qwe" 而不是 homedir->str,它就可以工作。 struct stat st = {0}; GString* homedir = g_st
我正在阅读 https://groovy-lang.org/closures.html#this 中的 Groovy 闭包文档.有一个关于 GString 行为的问题。 Closures in GSt
这在 GSP 页面中按预期工作: ${Foo.findAllByBar(bar)} 但是当添加收集语句时,代码会中断.. ${Foo.findAllByBar(bar).collect { it.na
我希望有人向我解释为什么以下内容是正确的: def t = "test" assert [test: 1] == ["test": 1] // 1. expected assert ["$t": 1
我是一名优秀的程序员,十分优秀!