[英]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.