如何导入java类?

Reg*_*ser 6 java import

可能重复:
导入包.*vs import package.SpecificType

我可不可以做:

import java.awt.*
Run Code Online (Sandbox Code Playgroud)

代替:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
Run Code Online (Sandbox Code Playgroud)

如果两种方式都正确哪一个更好?

Jon*_*Jon 14

您可以导入常规包,但最好更明确并导入所需的特定类.它有助于防止名称空间冲突问题,并且更好.

此外,如果您使用Eclipse和快捷键CTRL + SHIFT + O,它将自动生成显式导入,提示您进行不明确的导入.


Den*_*kiy 7

它只会导入java.awt中的类,所以你也必须导入java.awt.event:

import java.awt.*
import java.awt.event.*;
Run Code Online (Sandbox Code Playgroud)

第二种方法可能会加载较少的类,但不会为您节省太多内存.

  • ++.编译器很好地只导入实际使用的类,因此导入特定类的唯一好处是降低不合格名称冲突的可能性. (2认同)
  • 一个具体示例是如果导入java.awt.*和java.util.*然后尝试使用List.在这种情况下,您必须导入特定的类. (2认同)

akf*_*akf 6

他们都很好.最上面的一个不那么详细,但第二个将允许您具体了解您导入的类,从而避免冲突.由于大多数IDE都允许您隐藏import语句,因此第二个的详细程度并不是真正的问题.

考虑

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

当你试图声明一个时List,你java.awt.List和之间会发生碰撞java.util.List