如何在XMLBeans中获取所有枚举值?

时间:2008-12-05 12:52:21

标签: java enums xmlbeans

Apache XMLBeans可用于从XML架构定义文件(XSD)生成Java类和接口。它还基于StringEnumAbstractBase和StringEnumAbstractBase.Table生成枚举以表示域值。它们只能输入有效值。但是,我希望获得所有这些值来生成JCombobox,JTable或html表。

是否有XMLBeans API调用从生成的类中获取所有Enum值? 是唯一可以选择某种Java反射的选择吗?

由于

2 个答案:

答案 0 :(得分:3)

这对我有用:

for (int i = 1; i <= MyEnum.Enum.table.lastInt(); i++) 
{
  System.out.println(MyEnum.Enum.forInt(i));
}

答案 1 :(得分:2)

以下是获得它的另一种方法:

public static List<String> getEnumValueList(XmlString xmlString){
    List<String> values = new ArrayList<String>();
    SchemaStringEnumEntry valArr[] = xmlString.schemaType().getStringEnumEntries();
    for(SchemaStringEnumEntry val : valArr){
        values.add(val.getString());
    }
    return values;
}

因此,要获取ModelType的枚举值列表,请执行以下操作:

getEnumValueList(ModelType.Factory.newInstance());