Пользовательская аннотация поля Java: получить значение поля - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь создать пользовательскую аннотацию (и) для добавления к полям в классе.

Кажется, я не могу найти много способов запуска метода для полей.Я очень новичок в аннотациях, поэтому я могу даже ошибиться.

Например:

@Data
public class BookingForm {
    private static final String DEBUG = "Booking Form";
    @NameInput
    private String name;
    @EmailInput
    private String emailAddress;
    @PhoneNumberInput
    private String phoneNumber;
    private String bookingType;
    private String bookingDate;
    private String numberOfGuests;
    private String message;
    private BookingsPackage bookingsPackage;

    public BookingForm(String name, String emailAddress, String phoneNumber, String bookingType, String bookingDate, String numberOfGuests, String message, BookingsPackage bookingsPackage) throws InvalidFieldsException {

        this.name = name;
        this.emailAddress = emailAddress;
        this.phoneNumber = phoneNumber;
        this.bookingType = bookingType;
        this.bookingDate = bookingDate;
        this.numberOfGuests = numberOfGuests;
        this.message = message;
        this.bookingsPackage = bookingsPackage;
    }
} 

Класс создается с помощью внедрения полей ... тогда аннотации должны выполнятьсяметоды, использующие значения полей, такие как @EmailInput:

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface EmailInput {

    //Get the value of the annotated field and run a method(s).
    //E.g. If email does not pass regex -> Throw custom exception.

}

Возможно ли это?Я не могу понять, как получить значение поля, которое было аннотировано в интерфейсе @.

Я подумал, что, возможно, есть способ сказать, аннотировать класс с помощью пользовательской аннотации "@Form", которая получаетвсе аннотированные поля и запускает "случай переключения" какого-то рода ...

Так!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...