自定义APT插件导致IDEA调试时StreamTrace(跟踪当前流链)报internal error(内部错误)

1 篇文章 0 订阅

IDEA里面debug的时候,针对stream流提供了流追踪调试功能,方便大家调试stream流代码。
在这里插入图片描述
最近改其他人代码,需要用到这个,发现提示内部错误。
在这里插入图片描述
然后百度一圈发现没啥解决方案,就自己看IDEA的日志,看看是什么引起的错误。帮助里面点击红框里的选项就可以在控制台看日志
在这里插入图片描述
看日志发现报了一个java.lang.ClassCastException异常,com.sun.proxy.$Proxy8 cannot be cast to com.sun.tools.javac.processing.JavacProcessingEnvironment。一看栈信息,发现是自己写的APT注解处理器中发生的异常。
在这里插入图片描述
然后去看了一下源码,发现代码有将processingEnv变量强转成JavacProcessingEnvironment类的操作,应该就是这里有问题。至于为什么使用这个流追踪工具会执行我这个代码,目前还不清楚,因为我这个AutoVersion注解并没有在要调试的类中出现过。
在这里插入图片描述
最后加了一个变量判断传入的参数是否是JavacProcessingEnvironment类,如果不是就给一个false,不处理后续的代码,改完之后推送到仓库,重新更新启动项目。发现可以正常调试stream了,控制台的异常也没有了。
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值