使用泛型的 Eclipse 编译错误,但可以使用 maven/javac
Eclipse compile error with generics, but ok with maven/javac
我的 Eclipse IDE(Spring 工具套件版本 3.6。4.RELEASE 基于 Eclipse Luna SR1 4.4.2)给我这个 Mockito 代码的错误:
when(searcherClient.findDocumentsByCriteria(
any(GenericCriteria.class),
any(ParameterizedTypeReference.class)))
.thenReturn(
DataFixture.getGenericDocumentResponse());
错误是:
The method findDocumentsByCriteria(GenericCriteria,
ParameterizedTypeReference) in the type SearcherClient is not
applicable for the arguments (GenericCriteria,
ParameterizedTypeReference)
方法的签名是这样的:
public <T> T findDocumentsByCriteria(
GenericCriteria criteria,
ParameterizedTypeReference<T> responseType)
令我困惑的是,当我 运行 从 eclipe(使用 Oracle JDK 1.8.0_73)构建 Maven 时,它成功完成。其他同事使用相同的 Eclipse STS 版本,但不同 OS,没有编译错误。我的 OS 是 Ubuntu 15.04.
我遇到过类似的问题,maven 编译正常,但 Eclipse 本身显示某种错误,您必须在项目属性下检查 2 个地方:
构建路径
java编译器
如果您仅正确设置了其中一项 - 它将不起作用。
Eclipse 使用自己的 Java 编译器(无论您如何配置它)有时会显示与 javac 不兼容。 eclipse 编译器和 javac 编译器都有一些错误,这些错误正在不断修复。考虑更新到最新的 Eclipse Mars.2。
我的 Eclipse IDE(Spring 工具套件版本 3.6。4.RELEASE 基于 Eclipse Luna SR1 4.4.2)给我这个 Mockito 代码的错误:
when(searcherClient.findDocumentsByCriteria(
any(GenericCriteria.class),
any(ParameterizedTypeReference.class)))
.thenReturn(
DataFixture.getGenericDocumentResponse());
错误是:
The method findDocumentsByCriteria(GenericCriteria, ParameterizedTypeReference) in the type SearcherClient is not applicable for the arguments (GenericCriteria, ParameterizedTypeReference)
方法的签名是这样的:
public <T> T findDocumentsByCriteria(
GenericCriteria criteria,
ParameterizedTypeReference<T> responseType)
令我困惑的是,当我 运行 从 eclipe(使用 Oracle JDK 1.8.0_73)构建 Maven 时,它成功完成。其他同事使用相同的 Eclipse STS 版本,但不同 OS,没有编译错误。我的 OS 是 Ubuntu 15.04.
我遇到过类似的问题,maven 编译正常,但 Eclipse 本身显示某种错误,您必须在项目属性下检查 2 个地方:
构建路径
java编译器
如果您仅正确设置了其中一项 - 它将不起作用。
Eclipse 使用自己的 Java 编译器(无论您如何配置它)有时会显示与 javac 不兼容。 eclipse 编译器和 javac 编译器都有一些错误,这些错误正在不断修复。考虑更新到最新的 Eclipse Mars.2。