JavaParser⽆法解析链式调⽤的问题
当解析链式调⽤时,如:“ClassB().methodB()”.
尽管预先在JavaParserFacade中,添加了所有必须的JarTypeSolver,包括ClassB所在的Jar包.
并且debug确认JavaParser已成功添加ClassB所在的JarTypeSolver.
解析到"ClassB().methodB()“这样的链式调⽤时,还是会报"NotFoundException”,ClassB不到.于是debug JavaParser 和 javassist 的源码,发现CtMethod在调⽤getReturnType⽅法时,
会使⽤declaringClass的ClassPool来解析ClassB,这就导致了NotFoundException 的出现.
javaparser野外evaluate declaringClass的ClassPool发现,这⾥边并没有包含ClassB.
于是,修改JavaParser的源码,在getReturnType报NotFoundException时,
catch异常,并使⽤上下⽂中的typeSolver来解析ClassB,并解析成功.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论