Adrninistrator / java-all-call-graph

Generate all call graph for Java Code.
Apache License 2.0
438 stars 111 forks source link

自定义扩展增加对反射的支持? #28

Open skysider opened 1 year ago

skysider commented 1 year ago

目前的扩展功能只支持某个类/接口的方法调用转换为它的继承类或者接口实现类的另一个方法,在java反射场景中需要将一个类的方法调用转换为另一个没有继承或者实现关系的另一个类的方法调用,由于反射通常会根据不用条件对应到不同的类和方法,在这种情况下可能需要返回一个类:方法调用的列表

Adrninistrator commented 1 year ago

支持反射会相对复杂一些,下一个版本考虑支持一下 使用反射调用方法的场景,是使用的JDK的Class.forName()、Class.getDeclaredMethod()、Method.invoke()方法吗,还是有做封装,或者调用其他的工具类 通过反射调用的方法如果有参数,处理会更复杂一点

skysider commented 1 year ago

支持反射会相对复杂一些,下一个版本考虑支持一下 使用反射调用方法的场景,是使用的JDK的Class.forName()、Class.getDeclaredMethod()、Method.invoke()方法吗,还是有做封装,或者调用其他的工具类 通过反射调用的方法如果有参数,处理会更复杂一点

考虑封装场景吧,单纯对如Method.invoke这样的方法定义新的方法调用没啥意义,不同的调用位置实际调用的类和方法差异比较大,我在考虑一种比较通用的方案:通过上层多个调用特征来定义上下文,提供该上下文场景下的特定方法(如Method.invoke)实际调用的方法。