在Java中,何时应该使用*而不是包中的单个对象导入整个包?

时间:2012-05-15 01:07:38

标签: java android import packages

使用import android.view。*这样的语句是否有一些缺点,而不是仅仅从视图包中导入我实际使用的对象?如果我使用*,它会使我编译的Android应用程序更大吗?如果是,那么决定是用单个对象还是单个对象导入整个包的最佳做法是什么?感谢

2 个答案:

答案 0 :(得分:5)

您需要知道import没有加载任何内容。类加载器就是这样做的。

所有import都允许您在代码中使用短名称而不是长名称(例如Connection而不是java.sql.Connection)。它根本不会影响Android应用的大小。

答案 1 :(得分:4)

在他们的书Core Java Volume 1中,作者说明了

  

java.util。*语法不那么繁琐。它对代码大小没有负面影响。   但是,如果您明确导入类,则代码的读者会知道   你使用哪个类。

您唯一需要担心软件包的时间就是名称冲突。例如,java.util和java.sql包都有Date类。现在假设您编写了一个导入两个包的程序。     * import java.sql。**和     * import java.util。** 如果您现在尝试使用Date类,则会出现编译时错误。如果要同时使用它们,则必须使用完全限定名称。

导入声明的唯一好处是方便。 类似于C中的#include指令。在书The Java Programmin Language (It has James Gosling as one of its authors)中,作者陈述如下,

  

导入语句只提供信息(关于您在中使用的类型)   代码)到编译器;它们不会导致文件“包含”到当前文件中。

我从书籍 Java语言规范(由Bill Joy,James Gosling等人)推断,我上面提到的是带有外卡的导入语句是称为类型 - 按需导入声明。这告诉编译器如果找到了它不知道的名称,它应该查看 import-on-demand 语句给出的包,看它是否有一个该名称的成员。 / p>