在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”]){
someList
def 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
    }
}