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。
有没有办法添加 EnumConstants 的动态列表 - 我希望看到 addEnumConstants()
。
好像没有平行于addFields()
或addMethods()
?
确实有no methods to add a list of enum constants. Quoting from the documentation:
Use
enumBuilder
to create the enum type, andaddEnumConstant()
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。