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

sla*_*ker 7 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() {            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

error: cannot find symbol
  static class InnerClass implements Serializable {     
symbol:   class Serializable
location: class Wtf
Run Code Online (Sandbox Code Playgroud)

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

ass*_*ias 7

我用jdk 1.7.25得到了相同的编译错误.

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

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