我可以使用修饰符声明以下程序包,但它似乎对任何内容都没有任何影响:

private public protected static final package com.stackoverflow.mangodrunk

// ...
class Whatever {
    // ...
}

所以我的问题是,在包解包之前添加修饰符会做什么,为什么编译器会允许它?

更新:与Eclipse捆绑在一起的编译器似乎是一个问题,就像其他人提到的那样,这是使用Sun的JDK的编译器错误。

最佳答案

他们不是。您正在使用哪个编译器?

$ javac com/stackoverflow/mangodrunk/Whatever.java

com/stackoverflow/mangodrunk/Whatever.java:1: class, interface, or enum expected
private public protected static final package com.stackoverflow.mangodrunk;
                                      ^
1 error

09-27 20:43