Ci sono un sacco di domande come questa. Ne ho analizzati la maggior parte ma nessuno in realtà, ma non sono riuscito a trovare una risposta:perché questo codice viene compilato con il compilatore eclipse ma non con javac (maven)
Ho uno strano problema in una delle mie classi GWT/GWTP.
La classe viene compilata correttamente con il compilatore Eclipse ma non riesce con il compilatore javac (Maven).
//additional imports
import com.gwtplatform.mvp.client.PresenterWidget;
import com.gwtplatform.mvp.client.View;
public class MyPresenter extends PresenterWidget<MyPresenter.MyView> {
public interface MyView extends View {
}
some code
}
Quando provo a compilare con Maven ottengo l'errore seguente:
cannot find symbol symbol: class View
Vista riferisce all'interfaccia View
nel pacchetto com.gwtplatform.mvp.client
.
Ho altre classi che sembrano uguali e funzionano bene.
La cosa strana è che se cambio l'ordine delle importazioni o specifico il pacchetto esatto dell'interfaccia View
, esso compila senza problemi in Maven.
Per essere precisi ho spostato l'importazione per com.gwtplatform.mvp.client.View
import com.gwtplatform.mvp.client.View;
//additional imports
import com.gwtplatform.mvp.client.PresenterWidget;
Ho avuto un problema simile qualche tempo fa con il problema di successione ciclica tra le classi che fanno riferimento a classi interne (ha lavorato in Eclipse, ma non in javac). Tuttavia non sono sicuro che sia lo stesso problema.
Non sono sicuro della causa principale dei problemi, ma le interfacce interne non sono molto carine e possono portare a confusioni sulla provenienza delle dipendenze. – AndyT
Hai ragione e presumo che spostare l'interfaccia fuori dalla classe lo risolvesse (difficile non l'ho verificato). Ero solo curioso di sapere quale potrebbe essere la spiegazione di questo strano comportamento (spostarsi tra le importazioni fa compilare o meno il codice) –