2016-04-13 2 views
1

Ich habe eine Methode, wie unten mit ant passieren bauen:EasyMock generic Matcher bekam Fehler in Eclipse kompilieren, während kann

<T extends Resource> Response<T> post(Request<T> request) 

und versuchte, sie zu verspotten:

EasyMock.expect(restClient.post(isA(Request.class))).andReturn(response); 

Wenn ich öffnen Sie die Datei in Eclipse, markiert es die Post mit Fehlerzeichen und sagte: Die Methode Post (Request) im Typ RestClient ist nicht anwendbar für die Argumente (Request)

Aber es kann über Ant-Befehl erstellt werden. Ich bin mir nicht sicher, warum Eklipse es beklagt. Die beiden Einstellung von Compiler sind 1,8

+0

Klingt wie ein typisches "Eclipse & Generics (in Java 8)" - Problem, das natürlich verschwindet, sobald Sie mit 'javac' (via ant) ​​bauen. Beachten Sie, dass 'Request.class' den Typ' Class 'hat (' Request' ist ein * roher Typ *), daher wird nicht überprüft, ob der generische Typ von 'response' übereinstimmt. – Holger

Antwort

1

Versuchen etwas Ähnliches statt

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

Diese Syntax zu tun, können Sie den Typ richtig beheben. Sie benötigen kein isA, da die post-Methode ohnehin stark typisiert ist.

Verwandte Themen