? Hay un montón de preguntas como esta. Revisé la mayoría de ellos pero ninguno realmente pero no pude encontrar ninguna respuesta:¿por qué este código compila con el compilador de eclipse pero no con javac (maven)
Tengo un problema extraño en una de mis clases GWT/GWTP.
La clase compila bien con el compilador Eclipse pero falla con el compilador 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
}
Cuando intento compilar con Maven consigo siguiente error:
cannot find symbol symbol: class View
Ver se refiere a la interfaz View
en el paquete com.gwtplatform.mvp.client
.
Tengo otras clases que parecen iguales y funcionan bien.
Lo extraño es que si cambio el orden de las importaciones o especifico el paquete exacto de la interfaz View
compila sin ningún problema en maven.
Para ser más específicos que se trasladó la importación de com.gwtplatform.mvp.client.View
import com.gwtplatform.mvp.client.View;
//additional imports
import com.gwtplatform.mvp.client.PresenterWidget;
que tenía un problema similar hace algún tiempo con el problema de la herencia cíclica entre las clases que se refieren a las clases internas (trabajado en Eclipse, pero no lo hicieron en javac). Sin embargo, no estoy seguro si ese es el mismo problema.
No estoy seguro de la causa raíz de sus problemas, pero las interfaces internas no son muy bonitas y pueden llevar a confusiones acerca de dónde provienen sus dependencias. – AndyT
Tienes razón y supongo que mover la interfaz fuera de la clase lo solucionaría (aunque no lo he verificado). Solo tenía curiosidad por saber cuál podría ser la explicación de este extraño comportamiento (desplazarse por las importaciones hace que el código se compile o no) –