Disons que j'ai les classes suivantes:Dans Grails, comment obtenir une liste de toutes les valeurs discriminantes pour toutes les sous-classes d'un type de base?
class Apple extends Fruit { ... }
class Banana extends Fruit { ... }
class Grape extends Fruit { ... }
class Kiwi extends Fruit { ... }
Et ainsi de suite et ainsi de suite. Je dois maintenant afficher un menu déroulant qui contient une liste de toutes les valeurs discriminantes de toutes les sous-classes qui se prolongent Fruit
, donc par exemple:
<select name="fruitType">
<option value="Apple">Apple</option>
<option value="Apple">Banana</option>
<option value="Apple">Grape</option>
<option value="Apple">Kiwi</option>
</select>
C'est assez facile à coder en dur pour 4 d'entre eux, mais dans mon domaine réel il y a le potentiel pour que cette liste devienne assez longue. Est-il possible d'obtenir une liste de toutes les valeurs discriminantes pour toutes les sous-classes qui implémentent un type de base? Quelque chose comme ça, par exemple:
Fruit.class.getAllDiscriminatorValues()
post-scriptum La solution de contournement que nous avons utilisée jusqu'à présent consiste à créer une énumération statique avec tous les types, par ex. 'enum statique publique FruitType {Apple, Banana, Raisin, Kiwi}', mais ce n'est pas vraiment une solution maintenable. –