如何获得通用类型注释
How can I get a generic type annotation
请告诉我,如何获取泛型类型的注解?
示例:我有 public List<@NotNull GuestForm> guests
,我想获取 NotNull 注释。
public class BookingForm {
public List<@NotNull GuestForm> guests;
private List<String> amenities;
private String propertyType;
private Unrelated unrelated;
public BookingForm(List<GuestForm> guests, List<String> amenities, String propertyType, Unrelated unrelated) {
this.guests = guests;
this.amenities = amenities;
this.propertyType = propertyType;
this.unrelated = unrelated;
}
}
public class BookingForm {
public List<@NotNull GuestForm> guests;
private List<String> amenities;
private String propertyType;
private Unrelated unrelated;
public BookingForm(List<GuestForm> guests, List<String> amenities, String propertyType, Unrelated unrelated) {
this.guests = guests;
this.amenities = amenities;
this.propertyType = propertyType;
this.unrelated = unrelated;
}
}
Object objectClass = requireNonNull(bookingForm);
var fields = objectClass.getClass().getDeclaredFields(); // Object fields
var annotations = ((AnnotatedParameterizedType) fields [0].getAnnotatedType()).getAnnotatedActualTypeArguments()[0].getAnnotations(); // Annotations of Generic type in List
请告诉我,如何获取泛型类型的注解?
示例:我有 public List<@NotNull GuestForm> guests
,我想获取 NotNull 注释。
public class BookingForm {
public List<@NotNull GuestForm> guests;
private List<String> amenities;
private String propertyType;
private Unrelated unrelated;
public BookingForm(List<GuestForm> guests, List<String> amenities, String propertyType, Unrelated unrelated) {
this.guests = guests;
this.amenities = amenities;
this.propertyType = propertyType;
this.unrelated = unrelated;
}
}
public class BookingForm {
public List<@NotNull GuestForm> guests;
private List<String> amenities;
private String propertyType;
private Unrelated unrelated;
public BookingForm(List<GuestForm> guests, List<String> amenities, String propertyType, Unrelated unrelated) {
this.guests = guests;
this.amenities = amenities;
this.propertyType = propertyType;
this.unrelated = unrelated;
}
}
Object objectClass = requireNonNull(bookingForm);
var fields = objectClass.getClass().getDeclaredFields(); // Object fields
var annotations = ((AnnotatedParameterizedType) fields [0].getAnnotatedType()).getAnnotatedActualTypeArguments()[0].getAnnotations(); // Annotations of Generic type in List