【问题标题】:Get domain class field names获取域类字段名称
【发布时间】:2013-02-27 02:32:31
【问题描述】:

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

【问题讨论】:

    标签: grails groovy


    【解决方案1】:

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

    YourClass.declaredFields.each {
      if (!it.synthetic) {
        println it.name
      }
    }
    

    【讨论】:

      【解决方案2】:

      您可以将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'...]
      

      【讨论】:

        【解决方案3】:

        刚刚发现,这个可行:

        def names = grailsApplication.getDomainClass('com.foo.Person').persistentProperties.collect { it.name }
        

        【讨论】:

          【解决方案4】:

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

          YourClass.fields.each { println it.name }
          

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-02-03
            • 1970-01-01
            • 1970-01-01
            • 2021-08-24
            • 1970-01-01
            • 2022-01-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多