1

EnumConstants の動的リストを追加する方法はありますかaddEnumConstants()?

addFields()またはaddMethods()?に匹敵するものはないようです。

4

2 に答える 2

2

実際、列挙型定数のリストを追加するメソッドはありません。ドキュメントからの引用:

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();
于 2016-01-21T12:27:08.250 に答える
0

enum 定数の追加については、 JavaPoetを参照してください。TypeSpec.Builder の作成を開始し、値のリストからループで .addEnumConstant を呼び出すことができます。

ただし、列挙型を生成する前に列挙定数リストがない場合は、それらを動的に生成することはできません。列挙型定数は、列挙型クラスの定数リストである必要があります。別の方法は、有効な値の動的リストと、列挙型の .valueOf 関数を置き換える .get 静的関数を使用してシングルトン クラスを生成することです。

于 2016-01-21T12:27:55.670 に答える