我工作的一个小Java程序,并使用数组,所以我做了:
import java.util.Arrays;
后来我开始扩大在什么我以前做了决定我想从用户那里得到输入,所以在这一点上我补充说:
import java.util.Scanner;
现在,一个念头出现。 我知道,我可能只是这样做:
import java.util.*
然后,我只需要1条导入线,而不是两个(或然而,许多我最终需要),但在进口通配符意味着它将导入一切事情 ,从包无论是否需要这种耐心与否,或者说只在选择性的功能拉?
在这里,我的直觉是编写更多的代码,只包括我知道我需要的软件包,但如果不有所作为,为什么会有人进口更多的水平/包,然后他们需要? (我宁愿只是偷懒,写更少的代码)
要清楚什么进口正在做什么。 这并不意味着加载.class
文件,字节码。
所有的进口确实是让你通过使用短类名,以节省打字。
所以,如果你使用java.sql.PreparedStatement
在你的代码,你要使用PreparedStatement
当您导入java.sql.PreparedStatement
。 你可以永远写Java代码,而无需使用单独的import
语句。 你要自己拼出来的所有全解析的类名。
而类加载器仍然会在字节码带来从.class
文件中第一次使用在运行时。
这样可以节省你的按键。 就这样。
它有没有关系的类加载。
就个人而言,我更喜欢以避免*符号。 我拼每一个导入的。 我认为它记录了我的意图更好。 我的IDE是的IntelliJ,所以我要求它插入在飞行进口。
懒惰通常是一种美德为开发者,但不是在这种情况下。 拼写出来,让你的IDE插入他们为你逐一。
如果你输入
import java.util.*;
你会得到指Scanner
,并List
它们的短名字。
但是,如果你想为做同样的FutureTask
和LinkedBlockingQueue
你必须有这样的:
import java.util.concurrent.*;
通配符进口一切都在那个包。 然而,使用像Eclipse的IDE,它为您提供了组织进口的可能性。
通配符全进口类和接口在包中。
但是,通配符进口不会导入具有相同名称的开始,包等。
例如,进口java.xml。* 不会导入java.xml.bind包。