当前位置: 首页 > 知识库问答 >
问题:

使用Mockito和kotlin时,只允许类位于类文字的左手边

岑明辉
2023-03-14

我使用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())

那么在这种情况下如何使用泛型参数呢?多谢了。

共有1个答案

韩鸿
2023-03-14

只需使用onDatalistListener::class.java

在类引用表达式中不需要(也不允许)尖括号的原因是类引用与泛型完全无关,对于类的泛型特化没有不同的类引用。

 类似资料:
  • 在StackOverflow中我知道很多类似的问题,但没有什么能解决我的问题。 IDE显示错误:只允许类位于类文字的左手边 对此如何解决?提前道谢。

  • 为了Android的开发,我从Java切换到kotlin。当我在Kotlin中搜索Java静态方法的等价时,我发现同伴对象是。但问题是在Kotlin中创建多个静态方法时。我得到了这些错误,每个类只允许一个伴随对象。

  • 假设我们有一个带有签名的函数 是否有可能实施一个约束来确保a和b是不同的?那就是 这个问题的目的是了解更多关于Haskell的信息,并可能解决我面临的一个设计问题。如果a==b,我的特殊情况是没有意义的,所以我想在编译器级别禁止这样做。我可能会用一个完全不同的设计来解决这个问题,但这不仅仅是现在的重点--潘多拉盒子已经打开,我想知道类型级别上的等式约束是否可能。

  • 我的application.properties(读取环境变量) MyService类: 给它赋值并不能解决问题。例如,用 null 对于我所读的内容,我需要一个委托的(https://kotlinlang.org/docs/reference/delegated-properties.html),但我不能完全理解它。另外,如果有一个“更干净”的解决方案,我不想编写另一个方法来设置属性。有什么想法

  • 所以在用kotlin类做了大量的试验和错误之后,我发现同样的代码在java中是可测试的,但在kotlin中是不可测试的。 这会导致:org . mock ITO . exceptions . mis using . missingmethodinvocationexception:when()需要一个必须是“模拟上的方法调用”的参数。比如:when(mock.getArticles())。然后返回