Пользовательская аннотация JAVA: ограничение параметров аннотации при определенных условиях - PullRequest
0 голосов
/ 21 сентября 2018

Я начинаю изучать java-аннотацию и хочу использовать ее как своего рода ярлык генератора.Я хочу генерировать только случайные тексты, только цифры или текст и цифры.

Вот моя пользовательская аннотация:

public @interface RandomGenerator {

    public int length() default 5;

    public GeneratorTypeEnum type();

    public GeneratorCaseTypeEnum caseType() default GeneratorCaseTypeEnum.TO_LOWER_AND_UPPER;

}

Пока все хорошо.Я использую enum, чтобы предоставить дополнительное определение, если оно используется клиентом.Вот инициация: у меня есть класс для использования аннотации

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. Можно ли как-то ограничить параметры в аннотации?
  2. Если в вопросе № 1 указано false, можете ли вы датьТеория или мнение, и если они не подходят для начинающих, не могли бы вы предоставить ссылки для справок.

Ответы будут очень благодарны.

PS: Мне плохо, потому что я могуне дайте ни одного из моих решений проб и ошибок, поскольку я новичок.

...