【问题标题】:How to pass function as parameter from java to kotlin method?java - 如何将函数作为参数从java传递给kotlin方法?
【发布时间】:2019-07-30 07:01:30
【问题描述】:

我有一个 Kotlin 代码:

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

现在我想从 Java 类中调用这个方法。我对如何称呼它感到困惑。这是我尝试过的

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

但它显示以下错误。

【问题讨论】:

  • @P.Juni 您提供的参考有一个接受一个参数的回调,但我有一个没有任何参数的回调。所以这并不能解决问题。
  • @PrajeetShrestha 请在showAdWithCallback之前分享代码
  • @BartekLipinski。哦,你明白了........我在 showAdWithCallback 之前有返回声明。我随机嵌入 showAdWithCallback 进行试用,忽略了返回语句。非常感谢你。你可以把它作为我会接受和赞成的答案。

标签: java android kotlin


【解决方案1】:

错误信息是由之前的代码你的:

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

【讨论】:

    【解决方案2】:

    回调:() -> 单位

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

    【讨论】:

      【解决方案3】:

      调用kotlin对象并调用函数

      kotlinobject.INSTANCE.showAdWithCallback(()->{
          return null;
      })
      

      【讨论】:

        猜你喜欢
        • 2016-10-14
        • 1970-01-01
        • 1970-01-01
        • 2020-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-10
        • 2013-10-04
        相关资源
        最近更新 更多