我正在使用 spring 并尝试向 Entity-Bean 添加自定义注释。我想要做的就是通过反射访问带有自定义注释@runtime 的字段。问题是,尽管字段上有多个 Annotation,但在运行时都无法访问它们:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ChangeableField {
}
实体:
public class Order {
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "dd:MM:yyyy HH:mm")
@ChangeableField
private Date scheduledStart;
@NotNull
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "dd:MM:yyyy HH:mm")
@ChangeableField
private Date scheduledEnd;
//...
}
我完全不知道该怎么做
Order.class.getField("scheduledStart").getAnnotation(ChangableField.class);
返回始终为空。(顺便说一句,此字段上所有声明的注释均为空)
或许和春天有关?
我将不胜感激任何帮助!
提前致谢
编辑
我不知道为什么,但现在它工作正常:
for (Field currentField : order.getClass().getDeclaredFields()) {
if (currentField.getAnnotation(ChangeableField.class) != null
&& map.containsKey(currentField.getName())) {
//..
谢谢你的帮助
顺便说一句,这里的这篇文章只是一个错字..