2013-07-24 12 views
7

Questo compila bene in Eclipse JDT ma non su 1.6.30 o 1.7.25:Importazione statica Java che causa errore di compilazione. Probabile bug del compilatore?

package doh; 

import static doh.Wtf.InnerClass.innerclassMethod; 
import java.io.Serializable; 

public class Wtf { 

    static class InnerClass implements Serializable { 
     public static void innerclassMethod() {    
     } 
    } 
} 

Con javac ottengo il seguente errore di compilazione:

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

Commentando l'importazione statica superfluo rende il compilare il codice. Così riordina le dichiarazioni di importazione.

+3

Curioso , ma qual è lo scopo dell'importazione di un metodo nel file in cui è implementato? – kiheru

+0

@erencan Compile errore man, quale stacktrace? : S – m0skit0

+4

Potrebbe essere correlato a [questo bug simile] (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7177813). – assylias

risposta

7

Ottengo lo stesso errore di compilazione con jdk 1.7.25.

Sembra essere a known bug (anche se l'esempio dato nel bug report utilizza un enum come la classe annidata ma è concettualmente identico) e le soluzioni alternative proposte sono le stesse di quelle che descrivono:

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