私はこのシグネチャを持つジェネリッククラスを持っています:
public abstract class EnumListBean<E extends Enum<E>> {
public List<E> getEnumList() {
//implementation details
}
}
現在、具体的なジェネリックパラメーターのenumListプロパティにアクセスするには、空のサブクラスを定義する必要があります。
@ManagedBean
@ApplicationScoped
public class ItemRarityBean extends EnumListBean<Item.Rarity>{
}
これにより、プロパティにアクセスできるようになります。例:
<f:selectItems value="#{itemRarityBean.enumList}" var="rarity"
itemLabel="#{rarity.readableName}" itemValue="#{rarity}" />
派生Beanを本当に宣言する必要があるのに、ジェネリッククラスにBeanとして直接アクセスできないかどうか疑問に思っています。
<f:selectItems value="#{enumListBean<Item.Rarity>.enumList}" var="rarity"
itemLabel="#{rarity.readableName}" itemValue="#{rarity}" />