获取域类字段名称

noo*_*oob 5 grails groovy

我想获得一个类的字段名称,并可能将其存储在列表中.有人可以帮忙吗?谢谢.

bit*_*aps 7

您可以gormPersistentEntity用于任何域对象,这至少适用于 Grails 2.4.4:

def names = Person.gormPersistentEntity.persistentPropertyNames
//returns ['firstName', 'lastName'...]
Run Code Online (Sandbox Code Playgroud)

你也可以GrailsNameUtils像这样使用自然名称:

def naturalNames = Person.gormPersistentEntity.persistentPropertyNames.collect {
        grails.util.GrailsNameUtils.getNaturalName(it)
}
//returns ['First Name', 'Last Name'...]

def capitilizedNames = Person.gormPersistentEntity.persistentProperties.collect{
    it.capitilizedName
}
//returns ['FirstName', 'LastName'...]
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以尝试这样来获取域类的字段名称.

YourClass.declaredFields.each {
  if (!it.synthetic) {
    println it.name
  }
}
Run Code Online (Sandbox Code Playgroud)


小智 0

您可以像这样迭代类的字段。

YourClass.fields.each { println it.name }
Run Code Online (Sandbox Code Playgroud)

如果您需要将它们放入列表中,您可以使用collect()或将其填充到each中。

http://groovy.codehaus.org/JN3535-Reflection