2013-07-24 184 views
7

編譯沒有在Eclipse JDT但不能在30年6月1日或1.7.25:Java靜態導入導致編譯錯誤。可能的編譯器錯誤?

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 

註釋掉多餘的靜態導入使代碼編譯。重新排序進口報表也是如此。

+3

好奇,但是將方法導入實現該文件的目的是什麼? – kiheru

+0

@erencan編譯錯誤的人,什麼stacktrace? :S – m0skit0

+4

它可能與[此類似的錯誤]有關(http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7177813)。 – assylias

回答

7

我得到與jdk 1.7.25相同的編譯錯誤。

這似乎是a known bug(雖然在錯誤報告中給出的示例使用枚舉作爲嵌套類,但它在概念上是相同的)和提議的解決方法是一樣的那些你描述:

  • swap import statements
  • remove static import and use fully qualified name