许多Java类涉及从其他包导入,包括用于GUI编程的内置包(如java.awt
和javax.swing
),或者使用来自同一Java项目的其他包中的类。< / p>
我目前使用的是Eclipse IDE,只要需要就可以进行导入。但是,当我使用需要从另一个包导入的方法时,它只从该包导入相关类。这使我更难以手动管理导入,以及使导入的包更难阅读。我几乎总是通过使用通配符*来使我的代码更紧凑,以表示我将从该包中导入所有类。
这是一个简单的Java程序,它创建一个包含带有JLabel和JButton的白色JPanel的JFrame。
/* What I got */
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
/* Can be instead */
// import java.awt.*;
// import java.swing.*;
public class GUIframe extends JFrame {
private static final long serialVersionUID = 1L;
public GUIframe() {
super();
this.setSize(new Dimension(400,400));
this.setTitle("JFrame");
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.add(new JLabel("JLabel"));
panel.add(new JButton("Button"));
this.getContentPane().add(panel);
this.setVisible(true);
}
}
我想知道从导入的包中导入单个类而不是通过通配符导入所有类的编码风格优势是什么? (众所周知,它生成相同的字节码,因此没有运行时性能差异,只有较小的编译时差异)
截至目前,我只选择通配符导入,除非类导入的数量非常少,因为它更容易管理。 何时适合单独导入,何时通过通配符导入是否合适?
答案 0 :(得分:1)
没有运行时性能差异。它主要归结为能够理解所使用的内容。
如果你使用了75%的调用,你可能最好用通配符导入整个包。然而,如果您只使用100或1中的1或2,则更容易看到您正在使用的内容。