自定义jsr-269注解处理器 Error:服务配置文件不正确,或构造处理程序对象javax.annotation.processing.Processor: Provider not found

6 篇文章 0 订阅
2 篇文章 0 订阅

出现的原因

自定义处理器还没有被编译就被调用,所以报 not found
在根据配置寻找自定义的注解处理器时,自定义处理器还未被编译

解决方式

maven项目可以配置编译插件,在编译项目之前先编译处理器,或者编译项目时跳过执行处理器
参考:https://stackoverflow.com/questions/38926255/maven-annotation-processing-processor-not-found

gradle项目可以将自定义处理器分离出去,单独作为一个项目,将这个项目build后作为依赖使用
例如:
dependencies {
 	compile project(':anno-project-core')
 	annotationProcessor project(':anno-project-core')
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
javax.annotation.nonnull是Java语言中的一个注解annotation),它的作用是标识一个方法、参数或字段不允许为空(null)。 在Java编程中,经常会出现空指针异常(NullPointerException)的情况,这是因为程序在使用一个空对象的时候,没有进行判断就直接调用了该对象的方法或属性,导致程序出错。为了避免这种情况的发生,我们可以在方法、参数或字段上使用javax.annotation.nonnull注解,强制规定对象不允许为空。这样一来,当程序在使用一个标记为nonnull的对象时,编译器会自动进行检查,如果程序调用了该对象的某个方法或属性,而该对象为空,就会在编译时报错,从而有效地避免了空指针异常的发生。 除了用于规定方法、参数或字段不允许为空之外,javax.annotation.nonnull注解还可以用于编写文档,让其他程序员明确知道使用该方法或参数时是否需要进行非空判断。 需要注意的是,作为一个注解javax.annotation.nonnull并不是Java语言的核心特性,如果想要使用这个注解,需要先引入相关的类库。目前,Java语言中广泛使用的类库是JSR-305,可以通过在pom.xml中添加以下依赖引入这个类库: <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>3.0.2</version> </dependency> 总之,javax.annotation.nonnull注解是Java编程中一个非常实用的工具,能够有效地避免空指针异常的发生,提高程序的稳定性和健壮性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值