Java静态导入导致编译错误。 可能的编译器错误?

这在Eclipse JDT中编译得很好,但在1.6.30或1.7.25上没有编译:

package doh; import static doh.Wtf.InnerClass.innerclassMethod; import java.io.Serializable; public class Wtf { static class InnerClass implements Serializable { public static void innerclassMethod() { } } } 

使用javac我得到以下编译错误:

 error: cannot find symbol static class InnerClass implements Serializable { symbol: class Serializable location: class Wtf 

注释掉多余的静态导入会使代码编译。 重新排序import语句也是如此。

我用jdk 1.7.25获得了相同的编译错误。

它似乎是一个已知的错误 (尽管错误报告中给出的示例使用枚举作为嵌套类,但它在概念上是相同的)并且建议的解决方法与您描述的相同:

  • 交换import报表
  • 删除静态导入并使用完全限定名称