Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何导入java类?_Java_Import - Fatal编程技术网

如何导入java类?

如何导入java类?,java,import,Java,Import,可能重复: 我可以做: import java.awt.* 而不是: import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; 如果两种方法都正确,哪一种更好?一种更明确的方法 编辑:第二种方法的优点是可读性,没有名称空间冲突等。但是,如果要

可能重复:

我可以做:

import java.awt.*
而不是:

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

如果两种方法都正确,哪一种更好?

一种更明确的方法


编辑:第二种方法的优点是可读性,没有名称空间冲突等。但是,如果要从一个包中导入100个类,最好使用第一种方法。

它将只导入java.awt中的类,因此您也必须导入java.awt.event:

import java.awt.*
import java.awt.event.*;

第二种方法可能会加载较少的类,但不会为您节省大量内存。

您可以导入通用包,但最好更显式地导入所需的特定类。它有助于防止名称空间冲突问题,而且更好


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

它们都很好。最上面的一个不太详细,但第二个允许您具体说明导入的类,从而避免冲突。由于大多数IDE都允许您隐藏导入语句,因此第二个语句的冗长性并不是一个真正的问题

考虑

import java.util.*;
import java.awt.*;

当你试图声明一个
列表
时,你会在
java.awt.List
java.util.List

之间产生冲突:@Mark-我不这么认为,但感谢你的观察,我想知道你是否愿意/能够在下面的答案中添加一些内容?++。编译器擅长于只导入实际使用的类,因此导入特定类的唯一优势是降低非限定名称冲突的可能性。一个具体的例子是,如果导入java.awt.*和java.util.*然后尝试使用List。在这种情况下,您必须导入特定的类。+1我指定此答案以供接受。@Jon-感谢您的输入,什么名称空间冲突会导致?编译器将返回错误?例如,如果使用日期=新日期();和import java.util.*和import java.sql.*最后会出现“类型日期不明确”的语法错误。