Java Easymock generic matcher在eclipse中出现编译错误,同时可以使用ant传递构建

Java Easymock generic matcher在eclipse中出现编译错误,同时可以使用ant传递构建,java,generics,easymock,Java,Generics,Easymock,我有一个方法如下: <T extends Resource> Response<T> post(Request<T> request) 当我在eclipse中打开文件时,它会用错误标记该帖子,并说: RestClient类型中的方法post(请求)不适用于参数(请求) 但它可以通过ant命令构建。我不知道为什么。编译器的两个设置都是1.8请尝试这样做 EasyMock.expect(restClient.post(EasyMock.<Request&l

我有一个方法如下:

<T extends Resource> Response<T> post(Request<T> request)
当我在eclipse中打开文件时,它会用错误标记该帖子,并说: RestClient类型中的方法post(请求)不适用于参数(请求)


但它可以通过ant命令构建。我不知道为什么。编译器的两个设置都是1.8

请尝试这样做

EasyMock.expect(restClient.post(EasyMock.<Request<Resource>>anyObject())).andReturn(response);
EasyMock.expect(restClient.post(EasyMock.anyObject()).andReturn(response);

此语法将允许您正确修复类型。您不需要isA,因为post方法无论如何都是强类型的。

听起来像是一个典型的“Eclipse&泛型(Java8)”问题,当然,当您使用
javac
(通过ant)构建时,这个问题就会消失。请注意,
Request.class
的类型为
class
Request
为原始类型),因此,不会检查
响应的泛型类型是否匹配。
EasyMock.expect(restClient.post(EasyMock.<Request<Resource>>anyObject())).andReturn(response);