1

私は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_ONLYWITHを使用することは明らかに適切ではありません。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. 注釈のパラメータを制限する方法はありますか?
  2. 質問 1 に当てはまらない場合は、理論や意見を教えてください。初心者向けではない場合は、参照用のリンクをいくつか提供してください。

回答をいただければ幸いです。

PS: 私は初心者なので、試行錯誤の解決策を提供できないため、気分が悪くなります。

4

0 に答える 0