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

时间:2013-07-24 13:42:06

标签: 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语句也是如此。

1 个答案:

答案 0 :(得分:7)

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

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

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