当前位置: 首页 > 面试题库 >

Eclipse / Java-导入java。(namespace)。*是否有害?

红砚文
2023-03-14
问题内容

为何在导入类型时Eclipse采用细粒度的方法?在C#中,我已经习惯了“使用System.Windows.Controls”之类的事情,但是使用Eclipse则更喜欢单独导入我引用的每个小部件(使用Ctrl
+ Shift + O快捷键)。如果我知道其中需要多种类型,那么导入整个名称空间是否有任何危害?


问题答案:

导入通配符包可能导致的唯一危害是,如果多个包中有多个同名类,则增加名称空间冲突的机会。

例如,我要编程使用ArrayListAWT应用程序中的Java Collections
Framework类,该应用程序使用ListGUI组件显示信息。为了举例,我们假设有以下内容:

// '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需要以下内容。

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可能会导致问题。



 类似资料:
  • 问题内容: 我正在尝试导出Java项目。我可以通过使用选项导出-> Java-> JAR文件来创建JAR文件。我无法将此jar文件导入Eclipse(Java的没有导入选项)。我在这里做错什么了吗? 针对Web开发人员使用Eclipse Java EE IDE(版本:Juno发行版) 问题答案: 有比导出和导入罐子更简单的方法。假设您的项目名为MyProject123。只是: 只需使用文件管理器打

  • 寻找一种将 NetBeans Java Web Project (Java EE) 导出到 Eclipse 的干净方法。 已尝试导入war文件,但它输出了许多错误。我认为这是因为EJB对象不包含在那里。 Netbeans项目与PostgreSQL和Glassfish服务器有联系,一切都安装在我的Windows PC上。它使用EJB模块,并且具有REST实现,具有JPA持久性。 使用Netbeans

  • 我收到了一个要修改的java项目,所以我决定在我的MacBook中设置它。我将项目加载到Eclipse(Luna)中,导入并添加了所有必要的外部罐子,并试图复制旧的设置。 现在,根据这一点(可能适用,也可能不适用),因为它是NetBeans(不确定是否有很大的区别),我应该使用< code > org . Apache . commons . lang 3 . stringescapeutils;

  • JTable似乎只用于以表格格式显示数据,而不是实际的导入/导出。 这在Swing中是可能的吗?你是怎么做到的?如果这对Swing要求太高,有没有其他UI工具包也可以让我这样做呢?(我正处于前端开发的早期阶段,还可以改变)

  • 问题内容: 将Java项目导入到我的工作区时遇到一些问题。我下面这个教程 -但我不能使用最后 导入现有项目的 步骤,因为Git仓库我用不包括Eclipse的具体和文件。 使用“新建项目”向导 因此,该项目不被识别为项目,因此无法导入。因此,我使用了“ 使用新建项目”向导 选项,并在下一个对话框中选择“ Java项目”,尝试了运气。问题在于这将创建一个没有任何内容的新Java项目!该项目也未连接到G

  • 问题内容: Java中是否有Mutex对象或一种创建对象的方法?我问是因为用1许可初始化的Semaphore对象对我没有帮助。考虑这种情况: 如果在第一次获取时发生异常,则catch块中的释放将增加许可,并且该信号量不再是二进制信号量。 正确的方法是吗? 上面的代码是否可以确保信号量是二进制的? 问题答案: 看到此页面:http : //www.oracle.com/technetwork/art