我使用Android studio的转换工具转换现有的java测试类。
我收到此错误:
只允许在类文字的左侧使用类
以下是使用的测试用例:
爪哇
doAnswer(answerVoid(
(OnDataListListener<List<BEntity>> myCallback) -> myCallback.onSuccess(mList))).when(
mInteractor).performGetBList(any(OnDataListListener.class), anyBoolean());
科特林
doAnswer(answerVoid { listener: OnDataListListener<List<BEntity>> ->
listener.onSuccess(
emptyList())
}).`when`<DragonInteractor>(mInteractor)
.performGetBList(any<OnDataListListener>(OnDataListListener<*>::class.java),
anyBoolean())
那么如何在这种情况下使用通用参数?感谢。
答案 0 :(得分:5)
只需使用OnDataListListener::class.java
即可。
在类引用表达式中不需要(且不允许)尖括号的原因是类引用完全不依赖于泛型,对于类的泛型特化没有不同的类引用。
答案 1 :(得分:0)
首先删除OnDataListListener<*>::class.java
参数
然后在List<BEntity>
参数类型中添加OnDataListListener
结果是
doAnswer(answerVoid { listener: OnDataListListener<List<BEntity>> ->
listener.onSuccess(
emptyList())
}).`when`<DragonInteractor>(mInteractor)
.performGetBList(any<OnDataListListener<List<BEntity>>>(),
anyBoolean())