如何解决Eclipse / Java-导入javanamespace*是否有害?
导入通配符包可能导致的唯一危害是,如果多个包中有多个同名类,则增加名称空间冲突的机会。
例如,我要编程使用ArrayList
AWT应用程序中的Java Collections
Framework类,该应用程序使用List
GUI组件显示信息。为了举例,我们假设有以下内容:
// 'ArrayList' from java.util
ArrayList<String> strings = new ArrayList<String>();
// ...
// 'List' from java.awt
List listComponent = new List()
现在,为了使用以上内容,必须至少将这两个类导入:
import java.awt.List;
import java.util.ArrayList;
import java.awt.*;
import java.util.*;
但是,现在我们将有问题!
有一个java.awt.List
类和一个java.util.List
,因此引用List
该类将是不明确的。List
如果我们想消除歧义,则必须使用完全限定的类名来引用:
import java.awt.*;
import java.util.*;
ArrayList<String> strings = new ArrayList<String>();
// ...
// 'List' from java.awt -- need to use a fully-qualified class name.
java.awt.List listComponent = new java.awt.List()
因此,在某些情况下,使用通配符软件包import
可能会导致问题。
解决方法
为何在导入类型时Eclipse采用细粒度的方法?在C#中,我已经习惯了“使用System.Windows.Controls”之类的事情,但是使用Eclipse则更喜欢单独导入我引用的每个小部件(使用Ctrl
+ Shift + O快捷键)。如果我知道其中需要多种类型,那么导入整个名称空间是否有任何危害?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。