2012-08-02 13 views
10

Il mio codice compila bene in Eclipse, ma quando provo a compilare da linea di comando (tramite il nostro sistema di Buildr ruby-based), ottengo questo messaggio di errore:importazione statica solo dalle classi e interfacce

static import only from classes and interfaces 

Suggerendo l'importazione statica di campi statici pubblici non è consentita. Cosa dovrei cercare per aiutare a diagnosticare questo problema? Come posso ripararlo?

Aggiornamento: per @ richiesta di Ted, la dichiarazione di costante nel file di riferimento:

public static final String NULL = "<NULL>"; 

e il riferimento (espurgato) nel file riferimento:

import static my.path.MyClass.NULL; 
+2

Inserisci il codice che genera questo messaggio - sia l'istruzione import che i campi importati. –

risposta

7

La mia ipotesi è che Eclipse e buildr stanno usando versioni del compilatore Java diverse o diversi flag del compilatore. C'è un bug nel compilatore Java 7 (bug ID: 715906) che genera questo errore quando si importano staticamente campi specifici. La soluzione consiste nell'utilizzare un'importazione statica con caratteri jolly. Così, invece di:

import static package.Class.staticField; 

fare questo:

import static package.Class.*; 
6

risposta in ritardo, ma ho appena ricevuto un problema simile e capito. Pubblicherò nel caso in cui aiuti chiunque altro a trovare questa pagina ...

Ho un errore simile quando, dopo una grande fusione e refactoring, ho accidentalmente messo una classe di test in src/main/java invece di src/test/java. Poiché la dipendenza JUnit era scope = tests, non funzionava in puro maven. Forse stai riscontrando lo stesso problema

Problemi correlati