2016-04-13 10 views
1

У меня есть метод, как показано ниже:EasyMock родовой согласовани получила компиляцию ошибки в упадке, а может пройти строить с муравьем

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

И пыталась дразнить его:

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

Когда я открываю файл в eclipse отметит сообщение с меткой ошибки и сказал: Сообщение метода (Request) в типе RestClient не применимо для аргументов (Запрос)

Но его можно создать с помощью команды ant. Я не уверен, почему затмение жалуется на это. Оба параметра компилятора являются 1,8

+0

Звучит как типичная проблема «Eclipse & Generics (в Java 8)», которая, конечно же, исчезает, как только вы создаете с помощью 'javac' (через ant). Обратите внимание, что 'Request.class' имеет тип' Class '(' Request' является * сырым типом *), следовательно, не будет проверки соответствия совпадающего типа 'response'. – Holger

ответ

1

Попробуйте сделать что-то вроде этого вместо

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

Этот синтаксис позволит правильно зафиксировать тип. Вы не нуждаетесь в isA, поскольку метод post строго типизирован.