当前位置: 首页 > 面试题库 >

Java包周期检测:如何找到所涉及的特定类?

田兴朝
2023-03-14
问题内容

如果您知道目标是 明确列出检测到的“跨包循环”中涉及的特定类 ,那么您建议使用哪种工具来检测 Java包循环依赖项 ? __

我知道classycle和JDepend,但是它们都无法列出循环软件包依赖项中涉及的类。度量标准具有有趣的循环图形表示形式,但它又仅限于软件包,并且有时很难读取。

我很累得到:

“您在这3个软件包之间有一个软件包周期依赖关系
,每个 好运中 都有xxx类,可以
找到合适的类并打破这个周期”

您是否知道采取任何额外步骤来真正向您解释为什么检测到循环的工具(即“列出所涉及的类”)?

Riiight …现在宣布结果:

@ l7010.de:谢谢您的努力。我会投票赞成(当我有足够的代表时),尤其是对于“ CAP”答案……但是CAP已经死了,并且不再与我的Eclipse
3.4兼容。其余都是商业用途,我只寻找免费软件。

@ daniel6651:谢谢,但是,正如所说的,仅是免费软件(对不起,我们一开始没有提到它)。

@izb是findbugs的经常用户(现在使用最新的1.3.5),我一键即可接受您的答案…如果您可以向我解释激活findbug来检测任何周期的选项是什么。此功能仅在通过时提到0.8.7版本(请查找“
New Style探测器以查找类之间的循环依赖项
”),而我无法对其进行测试。更新:现在可以正常工作了,并且我有一个旧的findbugs配置文件,其中该选项未激活。我还是喜欢CAD


问题答案:

Findbugs可以检测循环类依赖关系,并且也具有Eclipse插件。

http://findbugs.sourceforge.net/



 类似资料:
  • 问题内容: 如果我有一个事件的日期,例如2011-01-03,那么如何在Java中确定它是否在本周或下周?任何示例代码? 编辑: 我以为这是一个简单的问题,结果比我想象的要复杂得多,本周我要讲的是:从过去的太阳到星期六,下周是从下一个太阳到星期六。 问题答案: 这部分取决于您所说的“本周”和“下周”的意思…但是使用Joda Time可以很容易地确定它是在“今天”还是“接下来的7天”: 编辑:要获取

  • 问题内容: 我想查找给定月份中的所有星期六和星期日。我该怎么办? 问题答案: 在 最简单 的方法是只迭代所有在一个月的日子里,检查一周的某一天为他们每个人。例如: 我 绝对可以确定 ,这样做的方式要高效得多-但这就是我的出发点,当发现速度太慢时进行优化。 请注意,如果您能够使用Joda Time,那将使您的生活更加轻松…

  • 问题内容: 下载JDK / JRE时,我需要知道该类属于哪个JAR。有什么方法可以使用Eclipse或任何其他工具搜索特定类所属的Jar。现在,我必须打开jar 并仔细检查每个jar,以查看是否正在查找我正在搜索的课程。 问题答案: 您可以从在JarFinder上搜索类开始。 http://www.findjar.com/ 有时一门课程不只一次JAR,因此并不完美。但这可能有助于缩小搜索范围。 如

  • 我对Java还很陌生,我试着查了一下,但没有找到任何有用的东西。我想知道我怎么能检测到一个特定的窗口关闭了?我一直在使用windowClosing(),但这适用于关闭的任何窗口,因此如果窗口B关闭,我希望由于窗口a关闭而发生的事件也会发生。我如何只在窗口A关闭的情况下进行检测?抱歉,如果这是一个糟糕的措辞,我不知道那么多Java术语。提前致谢:)

  • 问题内容: 我有一个不断变化的xml模式(使用trang自动生成)。这些更改不是很详尽。从此架构中仅添加或删除一些元素。通过这种模式,我正在生成Java类(使用cxf),通过它们我将解组xml文档。 随着模式的更改,我的自动生成的Java类也会更改。同样,与模式一样,java类中的更改不是很大。例如,如果将元素say 添加到架构;一些相关的功能说了,并添加到自动生成的java类中。 现在,如何确定

  • 在我的Scala应用程序中,我有一个函数调用一个函数,该函数返回Future[T]类型的结果。我需要在递归函数调用中传递映射的结果。我希望这是尾递归的,但地图(或flatMap)正在破坏这样做的能力。我收到错误“递归调用不在尾部位置”。 下面是这个场景的一个简单示例。如何修改它以使调用是尾部递归的(而不破坏使用Await.result()的未来的好处)?