参考链接: Java中的链式异常

当解析链式调用时,如:“ClassA.getClassB().methodB()”.

尽管预先在JavaParserFacade中,添加了所有必须的JarTypeSolver,包括ClassB所在的Jar包.

并且debug确认JavaParser已成功添加ClassB所在的JarTypeSolver.

解析到"ClassA.getClassB().methodB()“这样的链式调用时,还是会报"NotFoundException”,ClassB找不到.

于是debug JavaParser 和 javassist 的源码,发现CtMethod在调用getReturnType方法时,

会使用declaringClass的ClassPool来解析ClassB,这就导致了NotFoundException 的出现.

evaluate declaringClass的ClassPool发现,这里边并没有包含ClassB.

于是,修改JavaParser的源码,在getReturnType报NotFoundException时,

catch异常,并使用上下文中的typeSolver来解析ClassB,并解析成功.

已给Javaparser 提pull request: https://github.com/javaparser/javaparser/pull/2398 PR已被接受.

[转载] JavaParser 无法解析链式调用的问题相关推荐

  1. Java8链式调用_java链式调用(转载http://www.cnblogs.com/quiet-snowy-day/p/6091233.html)

    记录最近在项目设计中遇到的一个小问题. 前提:有这样两个POJO类,它们都可以通过链式调用的方式来设置其属性值,其中一个类继承了另一个类. 问题:通过链式调用,子类对象访问父类方法后,如何使返回对象仍 ...

  2. 链式调用方法的实现原理和方法

    1.什么是链式调用? Person person = new Person().setName(fog).setAge(18).setSex(man).setJob(software engineer ...

  3. 一段经典的js命名空间创建和链式调用代码

    2019独角兽企业重金招聘Python工程师标准>>> var YourGlobal = { namespace: function(ns) { var parts = ns.spl ...

  4. 浅析jQuery的链式调用 之 each函数

      如果对于jquery的$()包装器函数还不是很清楚,请先参阅我的上一篇日志:浅析jQuery的链式调用 话说回来,虽然jQuery让学习前端技术的越来越多了起来,(本人就是因为学校图书馆偶然间遇到 ...

  5. 【Promise】入门-同步回调-异步回调-JS中的异常error处理-Promis的理解和使用-基本使用-链式调用-七个关键问题

    文章目录 1. 预备知识 1.1 实例对象与函数对象 1.2 两种类型的回调函数 1. 同步回调 2. 异步回调 1.3 JS中的异常error处理 1. 错误的类型 2. 错误处理(捕获与抛出) 3 ...

  6. mysql 事物封装_mysqls 一个node对mysql的封装库 链式调用、支持事务

    在我自己的平常开发中很少有见到javascript对sql的封装比较好的库(找了一圈也没找到.应该是暂时我没发现),因此前期的项目中根据自己的项目情况实现了一套封装方法. 最近我准备写一个这样的库,基 ...

  7. java中链式调用_Java及Android中常用链式调用写法简单示例

    本文实例讲述了Java及Android中常用链式调用写法.分享给大家供大家参考,具体如下: 最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形 ...

  8. java链式调用空指针_java 链式调用

    前言 现在很多开源库或者代码都会使用链式调用.因为链式调用在很多时候,都可以使我们的代码更加简洁易懂.以下Student类有多数个属性,让我们看看非链式调用和链式调用有何区别. 非链式调用 Main类 ...

  9. promise链式调用_这一次,彻底弄懂 Promise

    Promise 必须为以下三种状态之一:等待态(Pending).执行态(Fulfilled)和拒绝态(Rejected).一旦Promise 被 resolve 或 reject,不能再迁移至其他任 ...

最新文章

  1. 深入理解计算机操作系统(一)
  2. 使用说明 vector_Paddlepaddle学习|Ubuntu环境使用 Mahout 进行朴素贝叶斯模型的训练和测试...
  3. 最短路径问题:Dijkstra算法详解
  4. numpy基础知识点
  5. python读取sqlserver的数据_Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例...
  6. Intellij IDEA更新SVN没有提示语
  7. Linux之父和Redis之父,Redis之父:10x程序员应该具备哪些素质
  8. Python项目:用所有朋友微信头像做云图图
  9. MongoDB C#:如何将包含DateTime的JSON反序列化为正确的BsonDocument DateTime值
  10. 深度解析javascript中的浅复制和深复制
  11. 2019杭州云栖大会探营:神龙的秘密
  12. 好用的android高清播放器,高清播放器哪个好用(推荐4款4K高清画质播放器)
  13. CBR VBR ABR
  14. numpy移动平均线 布林带 线性模型 趋势线
  15. jetson nano 基础设置
  16. Maltrail恶意流量检测系统
  17. 微信小程序实现长文本分段播放
  18. 运行软件打不开,报“应用程序无法正常启动(0xc0150002)”的错误
  19. Python读写Excel文件-1
  20. 渗透学什么?渗透测试中超全的提权思路来了!

热门文章

  1. 【CCCC】L3-012 水果忍者 (30分),,枚举斜率
  2. 【JavaScript】【ChormeDav】问卷星自动填写问卷
  3. Calibre修改保存电子书为中文
  4. 【NOIP2016】【Luogu2010】回文日期(枚举,可以计算出部分值)
  5. 【NOIP2001】【Luogu1049】装箱问题
  6. NYOJ1 - A+B Problem
  7. 计算机社团技术部部长述职报告,社团部长个人工作总结(精选6篇)
  8. hibernate运行很慢?查一张只有几条记录的表都要一俩分钟?[问题记录]
  9. 用SQL表达内连接和外链接
  10. bzoj 2326: [HNOI2011]数学作业(矩阵快速幂)