java-all-call-graph
java-all-call-graph copied to clipboard
能否获取方法调用链中的条件分支呢
现在能知道methodB()是在methodA()中被调用,但是如果methodA()中有条件分支if...else或者case.....,能不能定位methodB()是在methodA()中的if语句还是else语句中被调用呢? methodA(){ if(true){ methodB(); } else { methodC(); } }
对分支处理的功能在实现中,但是最终效果现在不好说
因为代码里看到的if(a > b)或者if(f())语句,和Java字节码之间的差异还比较大,从字节码还原成代码不一定能实现 还有一些很复杂的判断条件,处理就更麻烦了,比如if(a && (b || c) && (d || (e && f)))
对分支处理的功能在实现中,但是最终效果现在不好说
因为代码里看到的if(a > b)或者if(f())语句,和Java字节码之间的差异还比较大,从字节码还原成代码不一定能实现 还有一些很复杂的判断条件,处理就更麻烦了,比如if(a && (b || c) && (d || (e && f)))
呃,那折中的话,强制要求开发人员不在if...else的判断条件中写方法调用是不是就可以啦~ 如果能确定方法调用是走if分支或者走else分支的话,做测试用例的时候,应该能减少一些测试代码的编写。
等分支处理相关的功能实现以后,再看看你需要实现什么样的效果哈