Java 使用嵌套接口作为泛型类型初始化(在maven中找不到符号错误,但在eclipse中有效)
我有一个奇怪的(或者可能没有)问题。我正在使用MVP框架,并以以下方式定义我的一些类:Java 使用嵌套接口作为泛型类型初始化(在maven中找不到符号错误,但在eclipse中有效),java,maven,gwt-platform,Java,Maven,Gwt Platform,我有一个奇怪的(或者可能没有)问题。我正在使用MVP框架,并以以下方式定义我的一些类: public class SomePresenter extends Presenter<SomePresenter.MyView, SomePresenter.MyProxy> { public interface MyView extends View {} public interface MyProxy extends Proxy {} } SomePrese
public class SomePresenter extends
Presenter<SomePresenter.MyView, SomePresenter.MyProxy>
{
public interface MyView extends View {}
public interface MyProxy extends Proxy {}
}
SomePresenter扩展的公共类
节目主持人
{
公共接口MyView扩展视图{}
公共接口MyProxy扩展了代理{}
}
在eclipse中,这可以很好地编译(我猜是因为它使用eclipse编译器),但是当我使用maven(OracleJDK7或6)时,视图
接口会出现一个symbol not found错误
如果我执行以下操作之一,maven的编译效果很好:
- 将接口放在单独的java文件中
- 将
视图的导入语句移动到导入列表的顶部
在oracle java编译器中使用嵌套接口作为泛型类型是否存在已知问题?我认为oracle编译器没有问题,但只是为了确保您可以尝试在Eclipse中使用它 更可能的是,我认为这是一个依赖性问题-请给我们看你的POM文件?此外,在具体的编译错误复制
View
接口是在com.gwtplatform:gwtp mvp client
工件中定义的,它应该在那里的某个地方。您说,如果将视图import移到导入列表的顶部,它就可以工作了——在那里是否还有另一个
View`可能需要删除(在Eclipse中,Ctrl-Shift-O表示“优化导入”很方便)
干杯,在您的POM中尝试此功能。关键部分是依赖部分。它将使用eclipse编译器
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-proc:none</compilerArgument>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>1.8.2</version>
</dependency>
</dependencies>
</plugin>
org.apache.maven.plugins
maven编译器插件
2.3.2
1.6
1.6
-过程:无
org.codehaus.plexus
plexus编译器eclipse
1.8.2
相关性很好。我检查了mvn依赖项:tree
。我使用Ctrl-Shift-O来组织导入,这将视图的导入移到了底部,我再次遇到编译错误。当我再次手动向上移动导入时,maven可以正常工作。我必须尝试在eclipse中使用普通java编译器来检查它是否与编译器相关。谢谢你的建议。我尝试了这个,不幸的是,我得到了与普通sun/oracle编译器相同的错误。也许eclipse(我使用的是Juno)使用的是一个可以处理这些循环依赖关系的旧编译器。