有没有办法判断是否有代码没有在java中使用?

时间:2016-02-20 14:14:38

标签: java

每当我编程时,我似乎积累了很多"垃圾"代码,不再使用的代码。只是为了保持我的代码整洁,并避免进行任何昂贵和不必要的计算,是否有一种简单的方法来判断是否存在未使用的代码?

5 个答案:

答案 0 :(得分:1)

在Java中很难做到,因为它是一种反思性的语言。 (例如,你不能简单地寻找对某个类或函数的调用,因为反射可以用于使用只能在运行时解析的字符串来调用函数。)

所以完全一般,你无法确定。

如果您的代码库有足够的单元测试,则冗余代码的可能性不应引起关注。

答案 1 :(得分:1)

在这方面可以帮助您的基本原则之一是尽可能降低所有内容的可见性。如果某个课程可以私有,则不要将其设为默认,受保护或公开。同样适用于方法和变量。如果你能确定某些东西没有在课堂外使用,那就容易多了。在这种情况下,即使像Eclipse和IntelliJ Idea这样的IDE也会向您推荐未使用的代码。

在开发和重构代码时使用这种做法是自信地清除未使用代码的最佳方法,而不会破坏应用程序。即使在使用反射时,这也有助于场景。

答案 2 :(得分:0)

尽量避免积累垃圾。删除你不再需要的东西。 (您可以进行备份或更好地使用源代码管理系统。)

您还应该为您的功能编写单元测试。因此,您知道在删除某些内容后它是否仍然有用。

除此之外,大多数IDE都会向您显示未使用的局部变量和私有方法。

答案 3 :(得分:0)

我认为检查的最佳方法是安装像eclemma这样的覆盖插件,并创建单元和集成测试,以获得完成使用代码/任务的代码的100%覆盖率。 在测试完成并运行后不需要测试或不传递的代码是您不使用的代码

答案 4 :(得分:0)

我认为“未使用的代码”表示始终不在运行时执行的代码。我希望我能正确地解释你。

对此进行简单检查的方法非常简单。只需使用IntelliJ IDEA编写代码即可。它将告诉您代码中永远不会执行的部分以及可以简化代码的部分。例如,

if (x == 5) {

}

然后它会告诉你这个if语句是多余的。或者,如果你有这个:

return;
someMethod();

IDE会告诉您永远无法联系到someMethod()。它还提供了许多其他很酷的功能。

但有时这还不够。如果你有

怎么办?
if (x == 5) {
    someMethod();
}

但实际上在您的代码中,x只能在1到4的范围内? IDE不会告诉你这个。您可以通过运行大量测试来使用显示代码覆盖率的工具。然后,您可以看到代码的哪一部分未执行。

如果您不想使用此类工具,可以在方法中添加断点。然后手动进行一些测试。当调试器逐步执行代码时,您可以确切地看到代码的确切位置以及未执行的代码片段。

执行此操作的另一种方法是使用IDE的“查找/替换”功能。检查是否未在任何地方调用某些公共/私有方法。例如,要检查是否调用someMethod(),请在整个项目中搜索someMethod,并查看是否存在除声明之外的其他事件。

但最有效的方法是,

首先停止编写此类代码!