Java注释组合,重用属性

我想做这样的事情:

@QueryHints(@QueryHint(name = "org.hibernate.fetchSize", value = FetchSize.value()))
@Target({ })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FetchSize {
    String value();
}

无效的部分是value = FetchSize.value().我想将值属性从@FetchSize传递给目标注释@QueryHint,以便可以这样注释:

@FetchSize("1000")

这样的事情有可能以某种方式出现吗,我将如何使其工作?

解决方法:

不,这样的事情是不可能的.注释属性的值必须是常量表达式(和/或其他一些类型,例如枚举类型).

您要在此处执行的操作是动态引用另一个注释属性的值.那不可能

如果您控制注释处理器,则可以在那里执行该逻辑.如果您不这样做,那么您将很不幸,将不得不重新考虑您的设计.

上一篇:CDS VIEW 一些注解


下一篇:为什么继承是强耦合的,因为组合在Java中松散耦合?