我可以根据注释字段的类型生成编译时错误吗

2024-04-17

我写了一个java注释,如下所示:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)  // can I further limit this to only fields of type DomainObject?
public @interface Owns {
}

简单环顾四周后,我不知道是否有一种方法可以进一步限制此注释的使用,以便只能注释特定类型的字段。此注释是我们的域自定义的,只能用于我们的基本域对象类的实例。

有谁知道如何在编译时强制执行此操作?

谢谢你的帮助!


你可能会发出一个错误注释处理器 http://java.sun.com/javase/6/docs/api/javax/annotation/processing/Processor.html(你必须使用私有API http://java.sun.com/j2se/1.5.0/docs/guide/apt/GettingStarted.html如果您需要 Java 5 支持)。您可以使用Messager http://java.sun.com/javase/6/docs/api/javax/annotation/processing/Messager.html你从处理器环境 http://java.sun.com/javase/6/docs/api/javax/annotation/processing/ProcessingEnvironment.html传递给 init.

这有多有效可能取决于您的工具链。如果你使用的话应该没问题javac http://java.sun.com/javase/6/docs/technotes/tools/通过命令行或构建脚本进行编译。在我的 Eclipse 版本中,我必须手动为项目启用注释处理器(通过项目设置),并且错误不会出现在任何明显的地方。 (这JDT http://www.eclipse.org/jdt/如果您想提供自定义支持,注释插件确实具有扩展点,可以更好地与 IDE 集成。)使用常用工具进行检查是值得的,尤其是在您需要支持任意开发环境时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以根据注释字段的类型生成编译时错误吗 的相关文章

随机推荐