假设我有以下类(class):

class Apple extends Fruit { ... }
class Banana extends Fruit { ... }
class Grape extends Fruit { ... }
class Kiwi extends Fruit { ... }

等等等等。现在,我需要显示一个下拉列表,其中包含扩展Fruit的所有子类的所有鉴别符值的列表,例如:
<select name="fruitType">
    <option value="Apple">Apple</option>
    <option value="Apple">Banana</option>
    <option value="Apple">Grape</option>
    <option value="Apple">Kiwi</option>
</select>

这很容易对其中的4个进行硬编码,但是在我的实际 Realm 中,此列表可能会变得很长。是否有任何方法可以获取实现基本类型的所有子类的所有标识符值的列表?这样的事情,例如:
Fruit.class.getAllDiscriminatorValues()

最佳答案

您可以这样做:

def getAllFruitSubclasses() {

   def fruit = []

   grailsApplication.domainClasses.each {
      if (it.clazz.superclass == 'com.whatever.Fruit') {
         fruit << it.clazz.simpleName
      }
   }
   return fruit
}

关于grails - 在Grails中,如何获取基本类型的所有子类的所有鉴别值的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13736323/

10-15 18:08