是否可以用泛型传递接口的类型?
的接口:
public interface AsyncCallback<T>
在我的测试方法中:
Mockito.any(AsyncCallback.class)
把<ResponseX>放在后面或为.class没有工作。
是否可以用泛型传递接口的类型?
的接口:
public interface AsyncCallback<T>
在我的测试方法中:
Mockito.any(AsyncCallback.class)
把<ResponseX>放在后面或为.class没有工作。
当前回答
在thSoft的回答中,对any()方法的限定调用意味着我可以删除限定,因为返回类型允许推理:
private HashMap<String, String> anyStringStringHashMap() {
return Matchers.any();
}
其他回答
把pierrefevrier的评论作为答案,如果它出现在答案中而不是评论中,可能会很有用。
使用新版本的Mockito:(Matchers.<AsyncCallback<ResponseX>>any()
使用Java 8,您可以简单地使用任何()(假设静态导入)而不带参数或类型参数,因为增强了类型推断。编译器现在从目标类型(方法参数的类型)知道你实际上指的是Matchers.<AsyncCallback<ResponseX>>any(),这是java 8之前的解决方案。
我不得不采用以下机制来考虑泛型:
import static org.mockito.Matchers.any;
List<String> list = any();
when(callMyMethod.getResult(list)).thenReturn(myResultString);
希望这能帮助到一些人。
在thSoft的回答中,对any()方法的限定调用意味着我可以删除限定,因为返回类型允许推理:
private HashMap<String, String> anyStringStringHashMap() {
return Matchers.any();
}
有一种类型安全的方法:使用ArgumentMatchers.any()并使用类型限定它:
ArgumentMatchers.<AsyncCallback<ResponseX>>any()