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

如何将函数作为参数从java传递给kotlin方法?

孟德曜
2023-03-14

我有一个Kotlin代码:

fun showAdWithCallback(callback:() -> Unit) {
    if (AdsPrefs.shouldShowInterstitialAd()) {
        mInterstitialAd.show()
        this.callback = callback
    } else {
        callback()
    }
}

现在我想从Java类调用这个方法。我不知道该怎么称呼这个。这是我试过的

  showAdWithCallback(() -> {
        return null;
    });

但它显示了以下错误。

共有3个答案

危阳
2023-03-14

调用kotlin对象和调用函数

kotlinobject.INSTANCE.showAdWithCallback(()->{
    return null;
})
连坚白
2023-03-14

回调:()-

这是一个典型的可运行-零参数,没有返回值

孔飞舟
2023-03-14

错误消息是由以下代码导致的:

showAdWithCallback(() -> {
        return null;
});
 类似资料:
  • 问题内容: 我已经熟悉Android框架和Java,并希望创建一个通用的“ NetworkHelper”类,该类可以处理大多数联网代码,使我能够从中调用网页。 我遵循了来自developer.android.com的这篇文章来创建我的网络类:http : //developer.android.com/training/basics/network- ops/connecting.html 码:

  • 我正试图将dataframe列作为参数传递 但是得到错误 :33:错误:类型不匹配; 找到:org.apache.spark.sql.column 必需:int val df_new=df.withcolumn(“age_category”,ageclassification.agecategory(df(“age”))

  • 问题内容: 我很好奇Go中是否有可能。我有多种方法的类型。是否可以有一个函数,该函数需要一个方法参数,然后将其称为类型? 这是我想要的一个小例子: Go认为type 有一个称为的方法,而不是用传入的方法名称替换它。 问题答案: 是的,有可能。您有2(3)个选项: 规范:方法表达式 该表达式产生的功能与第一个参数等效,但具有一个显式接收器。它有签名。 在这里,方法接收器是显式的。您只需将方法名称(具

  • 我试图学习功能性Kotlin,并编写了以下测试代码: 在REPL中,我可以成功调用“findBorrowerX”: 但是我如何拨打“findBorrowerX2”的电话: 并将迭代的借用器x传递给getName?? 这看起来有关联,但我不确定: Kotlin:如何将一个函数作为参数传递给另一个? 提前感谢您对此的帮助! 编辑: 下面是我想做的等效Scala代码: 也许这在科特林是不可能的?

  • 问题内容: 在Java中,如何将一个函数作为另一个函数的参数传递? 问题答案: Java 8及以上 如果你的类或接口只有一个抽象方法(有时称为SAM type),则使用Java 8+ lambda表达式,例如: 然后可以在使用MyInterface的任何地方替换lambda表达式: 例如,你可以非常快速地创建一个新线程: 并使用方法引用语法使其更加清晰: 如果没有 lambda表达式,则最后两个示

  • 问题内容: 这似乎是一个愚蠢的问题,但是我是这个话题的新手。我正在致力于关于节点js的承诺。我想将参数传递给Promise函数。但是我不知道。 而功能类似于 问题答案: 将Promise包裹在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数: 然后,使用它: ES6: 用: