6

我想获取一个类的字段名称,并可能将其存储在一个列表中。任何人都可以帮忙吗?谢谢。

4

4 回答 4

7

你可以试试这个来获取域类的字段名。

YourClass.declaredFields.each {
  if (!it.synthetic) {
    println it.name
  }
}
于 2013-08-30T14:08:29.390 回答
7

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

def names = Person.gormPersistentEntity.persistentPropertyNames
//returns ['firstName', 'lastName'...]

你也可以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'...]
于 2017-08-07T22:07:01.937 回答
4

刚发现,这个有效:

def names = grailsApplication.getDomainClass('com.foo.Person').persistentProperties.collect { it.name }
于 2013-02-27T02:47:34.917 回答
0

您可以像这样遍历类的字段。

YourClass.fields.each { println it.name }

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

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

于 2013-02-27T02:44:03.557 回答