导入未使用的包是不是很糟糕?

Joo*_*oop 4 java import packages

例如,当您在同一个文件的团队中工作时,只能部分了解导入代码所需的不同软件包.您更改了此文件中的某些代码,并发现某些代码因此而变得多余.您删除该部分,现在不知道整个代码是否仍依赖于所有包.

[当然,不好可以在很多方面被客体化:速度,读取能力等]

dka*_*zel 6

是.原因有两个:

  1. 对于看到可能使用或不使用导入的代码的人来说,这可能会令人困惑.
  2. 使用相同名称导入的多个类可能存在导入冲突.这将要求除了其中一个类似的类名称之外的所有类型都可以通过代码中的完全限定名称来引用.

由于这些原因,如果不需要import语句,并且IDE有办法自动删除未使用的导入,java将发出警告.

注意,我没有提到速度或性能变化,我认为javac足够聪明,知道不使用任何不需要的导入,因此编译后的类就像你没有导入它一样.


icz*_*cza 6

您应该始终只使用必要的导入数量,并且不要使用完整的包导入java.util.*.今天的IDE通常支持"组织导入"操作,在此期间删除未使用的导入.

如果您有大量未使用的导入并且修改了代码,则有可能添加/更改引用未使用的导入涵盖的类的代码.然后你不会注意到你不小心使用了它们,即使这可能不是你的意图.

如果您只有最小导入,如果添加引用新类的代码,编译器将立即通过显示错误通知您,并让您可以选择要使用的类.

此外,如果您使用的导入超出了程序中当前引用的导入,则会增加为将来的Java版本或您使用的库中断程序的机会.

示例:如果您的程序仅使用java.util.HashSet但仍然导入java.util.*并使用导入的其他第三方库com.mylib.*,则代码可能会编译.如果在将来的版本中第三方库添加了一个名为的类com.mylib.HashSet,那么您的代码可能不再编译,因为编译器可能无法分辨您想要使用哪个类(例如java.util.HashSetcom.mylib.HashSet).
您是否仅进行java.util.HashSet了导入,例如com.mylib.SomeUtil,首先,您的代码仍将使用新版本的第三方库进行编译.