当前位置:  开发笔记 > 编程语言 > 正文

我是否可以根据Annotated字段的类型生成编译时错误

如何解决《我是否可以根据Annotated字段的类型生成编译时错误》经验,为你挑选了1个好方法。

我写了一个java注释,看起来像这样:

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

在简要回顾之后,我无法看到是否有办法进一步限制此注释的使用,以便只能注释特定类型的字段.此注释是我们的域自定义的,只能在我们的基本域对象类的实例上使用.

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

谢谢你的帮助!



1> McDowell..:

您可以在注释处理器中发出错误(如果您需要Java 5支持,则必须使用私有API).您可以使用从传递给init 的ProcessorEnvironment获得的Messager.

这有多大可能取决于您的工具链.如果您使用javac通过命令行或构建脚本进行编译,那应该没问题.在我的Eclipse版本中,我必须为项目手动启用注释处理器(通过项目设置),并且错误没有出现在任何明显的地方.(如果要提供自定义支持,JDT注释插件确实有扩展点,可以更好地与IDE集成.)使用常用工具检查是否值得,特别是如果您需要支持任意开发环境.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有