题
我注意到有一些特殊的方法可以使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+我将修复您的导入
不隶属于 StackOverflow