在Java中的Import语句中使用*

Swa*_*amy 0 java import

有人可以用Java解释我的import语句.有些导入有*后缀,有些则没有.这两者有什么区别?在import语句中使用*是否会导入所有类?

看到这里导入

在这里他们已经说过,尽管import语句似乎是嵌套的,但事实并非如此.有人可以详细解释一下吗?

Woo*_*Moo 7

使用*被认为是一种不好的做法.它用于导入该包中的所有文件.更正确的方法是列出您需要的每个类,特别是在您在IDE之外进行代码审查并需要知道您正在使用的类的哪个版本的情况下.从本质上讲,它会在开发团队中产生懒惰.

评论

对于那些认为这不是我所说的"坏"做法的人.你怎么能说这是一个好习惯呢?

import java.util.*;  
import java.io.*;
Run Code Online (Sandbox Code Playgroud)

即使编译器忽略*List您导入的所有内容之外的所有内容,这对于将来查看代码的人有何帮助?我认为这里有很多人忘记你是在为人而不是计算机编写代码.当Java消失并且您正在使用SuperAwesomeLanguage时,您怎么可能转换此代码?给出以下示例,如果您对java有零知识,请将其转换为您的新语言:

public class Foo  
{
    private List list;
}
Run Code Online (Sandbox Code Playgroud)

Listio?是io甚至不需要?问题是你不知道.因此,通过明确,您可以指导未来的开发人员,了解所需的类.

  • `使用*被认为是一种不好的做法 - 你有这方面的来源吗? (3认同)
  • 完成你的代码然后ctrl-shift-o :) (3认同)
  • 编译器将忽略未使用的类。我不认为这被认为是“不好的做法”。 (2认同)
  • @dystroy - 我认为你一针见血 - 这是一个意见。我自己,我更喜欢明确列出所有包,如果只是为了减少简单名称冲突的(轻微)机会。但这只是我的一个实践,而不是你会在任何地方找到的规定的最佳实践。 (2认同)
  • @Woot4Moo 说某事不是“坏习惯”与说它是“好习惯”不同。我承认如果发现冲突可能会有问题。但是`import static org.junit.Assert.*;` 为我节省了大量的编码时间...... (2认同)