我无法弄清楚为什么这不起作用.我的顶级类是未命名的包(现在;我打算稍后设置包).
Iclass1.java:
public class Iclass1 {
public static class Nested1 {
// whatever
}
}
Run Code Online (Sandbox Code Playgroud)
Iclass2.java:
import Iclass1.*;
public class Iclass2 {
private Nested1 someMember;
// etc.
}
Run Code Online (Sandbox Code Playgroud)
编译完成后Iclass1.java没有错误,编译器在编译时会抱怨Iclass2.java:"错误:包Iclass1不存在".
但JLS说:(7.5.2)
import PackageOrTypeName . * ;
Run Code Online (Sandbox Code Playgroud)
PackageOrTypeName必须是包的规范名称(第6.5节),类类型,接口类型,枚举类型或注释类型.
和:(6.7)
在未命名的包中声明的顶级类或顶级接口的完全限定名称是类或接口的简单名称.
对于每个基本类型,命名包,顶级类和顶级接口,规范名称与完全限定名称相同.
因此,似乎Iclass1是我试图在其中使用的类型的规范名称import.我究竟做错了什么?
(PS我现在认为import static会更好,但它也不起作用.)
| 归档时间: |
|
| 查看次数: |
1944 次 |
| 最近记录: |