我注意到有一些特殊的方法可以使Java中的实体合格:

Object o = new Outer().new Inner();

在这种情况下,我们将在外部类中限定内部类别,因此我们只需要导入外部类:

import mypackage.Outer;

还有其他案件吗? (也就是说 异常 资格发生 - 不寻常的是,我的意思不是: fullQualifier.identifier).

我排除了自动进口的情况(java.lang,原始类型等)

有帮助吗?

解决方案

我认为您误解了您描述的结构:

Object o = new Outer().new Inner();

实际上是一种充分限定的方法 Inner 类的构造函数,就像

Outer.Inner i = new Outer().new Inner();

另一方面,您可以写这篇文章:

import path.to.Outer;
import path.to.Outer.Inner;

// ...

Inner i = new Outer().new Inner();

其他提示

另外,如果:

  • 您使用通往对象的完整路径。例如:

    java.util.Date d = new java.util.Date();
    
  • 该课程在同一包中

  • 班级在 java.lang 包装 String

在这种情况下,外部包包括内部包,这就是为什么不需要导入内部包的原因,在大多数情况下,不需要导入整个软件包即可使用一个组件。例如,我只想使用一个字符串,无需导入整个java.lang。在一些复杂的库中,如果您使用了一些IDE,则可以为您修复导入,例如在NetBeans Ctrl+Shift+我将修复您的导入

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top