我不知道为什么这不起作用。我的顶级类位于未命名的程序包中(目前;我计划稍后再设置程序包)。

Iclass1.java:

public class Iclass1 {
    public static class Nested1 {
        // whatever
    }
}

Iclass2.java:
import Iclass1.*;
public class Iclass2 {
    private Nested1 someMember;
    // etc.
}

编译Iclass1.java没有错误后,当我编译Iclass2.java时,编译器会提示:“错误:程序包Iclass1不存在”。

但是JLS说:(7.5.2)
import PackageOrTypeName . * ;



和:(6.7)



因此,似乎Iclass1是我要在import中使用的类型的规范名称。我究竟做错了什么?

(P.S.我现在认为import static会更好,但也不起作用。)

最佳答案

由于您没有软件包,因此请不要使用导入。

因为JLS §7.5告诉您不要:

10-08 20:14