EnumConstants の動的リストを追加する方法はありますかaddEnumConstants()
?
addFields()
またはaddMethods()
?に匹敵するものはないようです。
実際、列挙型定数のリストを追加するメソッドはありません。ドキュメントからの引用:
enumBuilder
列挙型を作成するために使用しaddEnumConstant()
、各値に対して:
addEnumConstant()
この場合、すべての enum 値をループし、ビルダー インスタンスを呼び出して 1 つずつ追加する必要があります。
からすべての列挙型を追加するサンプル コードList<String> myEnumList
:
TypeSpec.Builder builder = TypeSpec.enumBuilder("Roshambo").addModifiers(Modifier.PUBLIC);
for (String str : myEnumList) {
builder.addEnumConstant(str);
}
TypeSpec typeSpec = builder.build();
enum 定数の追加については、 JavaPoetを参照してください。TypeSpec.Builder の作成を開始し、値のリストからループで .addEnumConstant を呼び出すことができます。
ただし、列挙型を生成する前に列挙定数リストがない場合は、それらを動的に生成することはできません。列挙型定数は、列挙型クラスの定数リストである必要があります。別の方法は、有効な値の動的リストと、列挙型の .valueOf 関数を置き換える .get 静的関数を使用してシングルトン クラスを生成することです。