JavaPoet 添加枚举常量列表

JavaPoet adding a list of enum constants

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

好像没有平行于addFields()addMethods()

确实有no methods to add a list of enum constants. Quoting from the documentation:

Use enumBuilder to create the enum type, and addEnumConstant() for each value:

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

添加所有枚举的示例代码 List<String> myEnumList :

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

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

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