我目前正在使用IntelliJ IDEA 2016.3.3对一个Java源代码进行依赖分析。我从矩阵依赖分析( DSM )开始。例如,我想知道类ComparisonComponent (CC)和ComparisonDescriptor (CD)之间的关系是什么。在下图中,DSM矩阵显示CC依赖于值为6的CD。
http://imgur.com/wR4RRzE "image01“
当试图了解源代码中的实际含义时,您可以右键单击正方形(显示数字6)并单击"Find usages for Dependencies“。这将返回到源代码,在本例中,tab显示CD类在CC类中的使用位置。如下图所示,它显示这个类被使用了5次。这5个地方都很容易找到。
http://imgur.com/uNWePUi "image02“
我已经阅读了Intellij的DSM手册,并且一直在做一些研究,但没有成功。我想知道DSM矩阵中的数字6在源代码中实际上代表了什么。还有其他一些数字匹配的例子(DSM矩阵数字和实际使用情况),但也有一些数字彼此相差很远的例子。
感谢大家的帮助!
非常感谢!
Phyllipe
发布于 2017-02-01 01:52:41
数量上的差异是由于DSM在编译的类文件上执行分析,而Find Usages在源文件上执行搜索。对类文件进行分析是为了提高性能,而对源文件进行DSM分析会慢很多倍。但是,类文件之间的引用数量和源文件之间的引用数量存在差异。一个例子是源文件中的import语句,这些语句显然不存在于类文件中。还有很多不同之处。
通过在IntelliJ IDEA中的Java源文件上调用View | Show Bytecode,可以查看相应编译的类文件的字节码。您可以使用此操作来探索Java源文件和类文件之间的差异。
https://stackoverflow.com/questions/41940818
复制相似问题