JavaPoet添加枚举常量列表

时间:2016-01-21 12:17:28

标签: java javapoet

有没有办法添加动态的EnumConstants列表 - 我希望看到addEnumConstants()

似乎与addFields()addMethods()没有平行?

2 个答案:

答案 0 :(得分:2)

确实no methods添加了一个枚举常量列表。引自documentation

  

使用enumBuilder创建枚举类型,并为每个值使用addEnumConstant()

在这种情况下,您需要循环遍历所有枚举值,并通过调用构建器实例上的addEnumConstant()逐个添加它们。

将所有枚举添加到List<String> myEnumList

的示例代码
TypeSpec.Builder builder = TypeSpec.enumBuilder("Roshambo").addModifiers(Modifier.PUBLIC);
for (String str : myEnumList) {
    builder.addEnumConstant(str);
}
TypeSpec typeSpec = builder.build();

答案 1 :(得分:0)

请参阅JavaPoet添加枚举常量。您可以开始创建TypeSpec.Builder并从值列表中循环调用.addEnumConstant。

但是,如果在生成枚举类型之前没有枚举常量列表,则无法动态生成它们。枚举常量必须是枚举类中的常量列表。另一种方法是生成一个带有动态有效值列表的单例类和一个替换枚举的.valueOf函数的.get静态函数。