Я пытаюсь создать пользовательскую аннотацию (и) для добавления к полям в классе.
Кажется, я не могу найти много способов запуска метода для полей.Я очень новичок в аннотациях, поэтому я могу даже ошибиться.
Например:
@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", которая получаетвсе аннотированные поля и запускает "случай переключения" какого-то рода ...
Так!