在Java中实现注释是个坏主意吗?
目前我一直在思考这个问题,但是,我找不到一个合适的答案。当前的用例是为特定的自定义注释创建一个实现类,这样在运行时我就可以简单地生成它而不是POJO
例如:
注释:
@interface CustomAnnotation {
String date();
}
在这个阶段,我需要一个bean,它恰好与注释具有相同的字段。这里我有两个选项,要么实现注释并在运行时创建它,要么创建一个类来携带信息
(A) 注释的实现:
public class CustomAnnotationImpl implements CustomAnnotation {
private final String date;
public CustomAnnotationImpl(String date) {
this.date = date;
}
@Override
public String date() {
return this.date;
}
@Override
public Class<? extends Annotation> annotationType() {
return CustomAnnotation.class;
}
}
(B)
public class CustomBean {
private final String date;
public CustomAnnotationImpl(String date) {
this.date = date;
}
public String getDate() {
return this.date;
}
}
还要记住,bean和注释总是同步的,这意味着bean实际上总是注释的副本
我的问题是,如果有的话,它们的优点和缺点是什么?我这样问是因为我自己还没有看到注释的实现
# 1 楼答案
我不完全理解你的问题,但看起来其他人已经问过类似的问题了
Use cases for implementing annotations
Use cases for java annotation and more