繁体   English   中英

强制带注释的类包含带注释的字段

[英]Force annotated Class to contain annotated Field

是否可以强制(在编译时)带注释的类具有带注释的字段?

我有这个注释:

@Target(value = ElementType.TYPE)
@interface MyClass {}

@Target(value = ElementType.FIELD)
@interface MyField {}

现在我希望像这样的类的编译失败:

@MyClass
class Customer {

}

这应该工作:

@MyClass
class Customer {
   @MyField
   String text;
}

是的,使用apt (注释处理工具)。

但对于这样简单的任务来说,这将是一种过度杀伤力。

您可以创建一些在应用程序启动时触发的侦听器并检查此要求。

最后,您可以通过假设合理的默认值来避免这种情况 - 即如果类被注释,则考虑使用默认值注释的所有字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM