私はJavaアノテーションを学び始めており、これをある種のジェネレーターラベルとして使用したいと考えています。ランダムなテキストのみ、数字のみ、またはテキストと数字を生成したい。
これが私のカスタム注釈です:
public @interface RandomGenerator {
public int length() default 5;
public GeneratorTypeEnum type();
public GeneratorCaseTypeEnum caseType() default GeneratorCaseTypeEnum.TO_LOWER_AND_UPPER;
}
ここまでは順調ですね。クライアントが使用する場合、列挙型を使用して追加の定義を提供しています。ここにinitがあります:注釈を使用するクラスがあります
public class Employee {
@RandomGenerator(type = GeneratorTypeEnum.NUMBERS_ONLY, caseType = GeneratorCaseTypeEnum.TO_LOWER_AND_UPPER)
private String id;
private String name;
// getters and setters
}
しかし、ご覧のとおり、大文字または小文字の数字がないため、 GeneratorTypeEnum.NUMBERS_ONLY
WITHを使用することは明らかに適切ではありません。caseType GeneratorCaseTypeEnum.TO_LOWER_AND_UPPER
列挙型:
GeneratorTypeEnum
public enum GeneratorTypeEnum {
TEXT_AND_NUMBERS,
NUMBERS_ONLY,
TEXT_ONLY
}
GeneratorCaseTypeEnum
public enum GeneratorCaseTypeEnum {
TO_LOWER,
TO_UPPER,
TO_LOWER_AND_UPPER
}
質問:
- 注釈のパラメータを制限する方法はありますか?
- 質問 1 に当てはまらない場合は、理論や意見を教えてください。初心者向けではない場合は、参照用のリンクをいくつか提供してください。
回答をいただければ幸いです。
PS: 私は初心者なので、試行錯誤の解決策を提供できないため、気分が悪くなります。