Eclipse使用泛型编译错误,但使用maven / javac就可以了

时间:2016-03-21 08:45:06

标签: java eclipse maven mockito spring-tool-suite

我的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());

错误是:

  

方法findDocumentsByCriteria(GenericCriteria,   SearcherClient类型中的ParameterizedTypeReference)不是   适用于参数(GenericCriteria,   ParameterizedTypeReference)

方法的签名是:

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我有一个类似的问题,maven编译正常,但Eclipse本身显示某种错误,你必须在项目属性下检查2个地方:

  1. 构建路径

  2. java编译器

  3. 如果您只正确设置了其中一个 - 它就无法正常工作。