繁体   English   中英

Eclipse使用泛型编译错误,但使用Maven / javac可以

[英]Eclipse compile error with generics, but ok with maven/javac

我的Eclipse IDE(基于Eclipse Luna SR1 4.4.2的Spring Tool Suite版本3.6.4.RELEASE)给我这个Mockito代码一个错误:

when(searcherClient.findDocumentsByCriteria(
    any(GenericCriteria.class),
    any(ParameterizedTypeReference.class)))
.thenReturn(
    DataFixture.getGenericDocumentResponse());

错误是:

类型SearcherClient中的方法findDocumentsByCriteria(GenericCriteria,ParameterizedTypeReference)不适用于自变量(GenericCriteria,ParameterizedTypeReference)

该方法的签名是这样的:

public <T> T findDocumentsByCriteria(
    GenericCriteria criteria, 
    ParameterizedTypeReference<T> responseType)

让我感到困惑的是,当我从eclipe(使用Oracle JDK 1.8.0_73)运行maven构建时,它成功完成了。 使用相同Eclipse STS版本但使用不同OS的其他同事没有编译错误。 我的操作系统是Ubuntu 15.04。

Eclipse使用自己的Java编译器(无论您如何配置),有时都显示与javac不兼容。 eclipse编译器和javac编译器都存在一些错误,这些错误正在不断修复。 考虑更新到最新的Eclipse Mars.2。

我有一个与此类似的问题,maven编译很好,但是Eclipse本身显示出某种错误,您必须在项目属性下检查2个地方:

  1. 建立路径

  2. Java编译器

如果您正确设置了其中一项,则将无法使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM