在groovy中访问映射的值?
我有以下的班级考试:在groovy中访问映射的值?,groovy,Groovy,我有以下的班级考试: class Main{ private Map<String, SomeClass> someClass } 主类{ 私有映射类 } 其中SomeClass如下所示: class SomeClass{ private String number private Map<String, String[]> someClassMap } class-SomeClass{ 专用字符串号 私有映射类映射 } 我有一个主要
class Main{
private Map<String, SomeClass> someClass
}
主类{
私有映射类
}
其中SomeClass如下所示:
class SomeClass{
private String number
private Map<String, String[]> someClassMap
}
class-SomeClass{
专用字符串号
私有映射类映射
}
我有一个主要班级的名单:
def someList
List<Main> main = callSomeService
main.each { m ->
def z = m.someClass.values().number
def x = m.someClass.values().someClassMap.findAll{it.key == 'someValues'} <-- problem
if(x){
someList << z
}
}
def someList
List main=callSomeService
main.each{m->
def z=m.someClass.values().number
def x=m.someClass.values().someClassMap.findAll{it.key=='someValues'}您可以执行以下操作:
if (m.someClass["someValue"]) {
someList << z
}
if(m.someClass[“someValue”]){
someListdef someList=[]
someClassMap.each{键,值->
if(key==“someValues”){
someList如果你想访问Main
和SomeClass
的字段,你不应该将它们声明为私有。你依赖于从类外访问私有成员的能力,这在Groovy@Don:一只虫子?真的吗?我以为是故意的。你有消息来源吗?@Joachim这不是故意的。怎么了r、 修复此问题将破坏大量代码(如上所述)这是在利用这个bug,所以它打算在Groovy 2.0中修复这个问题感谢您提供的信息,我不知道。那么这是一个实现bug还是它的设计方式中的bug?好吧,这是一个在Groovy中添加新功能时故意引入的实现bug。
def someList = []
someClassMap.each {key, value ->
if (key == 'someValues') {
someList << value
}
}