我有一个kotlin的方法,如下所示

 fun initDrawer(drawerView: DrawerView, drawerLayout: DrawerLayout, context: Context, onRefreshClick: ()  -> Unit) {
  }

But when I try to pass initDrawer(drawerView,drawerlayout,this,onRefreshClick()) it gives me an error of required () cannot be applied to(kotlin.Unit)

是否可以将方法从java传递到kotlin.

推荐答案

您必须将onRefresh Click的返回值设置为Unit:

private Unit onRefreshClick() {
    //do something here
    return Unit.INSTANCE;
}

Then you can call it like this:

initDrawer(drawerView, drawerLayout, this, this::onRefreshClick);

Kotlin相关问答推荐

创建包含 3 个相同项目的列表/使用返回类型重复

使用 Kotlin 的 Springboot 中缺少 ResponseEntity 正文属性

Eclipse:无法安装 Kotlin 插件

为什么 Kotlin 中的 Double 和 Long 类型不推荐直接转换为 Char?

测试协程和线程之间的差异,我在kotlin中使用线程时无法得到OOM错误

为 Gradle 子项目配置 Kotlin 扩展

Kotlin 代码是如何编译成原生代码的?

变量后的Android问号

Android Kotlin StringRes 数量String

使用 Paging 3 时保存并保留 LazyColumn 滚动位置

RecyclerView SnapHelper无法显示第一个/最后一个元素

如何在Kotlin中创建填充空值的通用数组?

Android插件2.2.0-alpha1无法使用Kotlin编译

Spring Boot:更改属性占位符符号

Kotlin:如何修改成对的值?

Kotlin - computed var 属性的用处?

Failure delivering result on activity result

kotlin中密封类和密封接口的区别是什么

Dagger 2 androidx fragment不兼容类型

如何在 Intellij Idea 中运行 Kotlin 函数