在 Java 代码中使用 kotlin 扩展函数
Using kotlin extension function in Java code
我创建了一个扩展函数来监听按钮的点击监听器,当我尝试从 Java 代码访问它时它不起作用,
无法从 java 文件访问 clicks(),这是我尝试过的
能否请您建议如何解决此问题。
谢谢
R
文件 - Extension.kt
fun Button.clicks(): Flow<Unit> = callbackFlow {
setOnClickListener {
offer(Unit)
}
awaitClose { setOnClickListener(null) }
}
在我的 java 代码中 - FillingFragment.java
@NotNull
@Override
public Flow<Void> getStartFillingObservableFlow() {
return dataViewHolder.btnStartFilling.clicks(); //CLICKS IS NOT. RECOGNISED
}
DataViewHolder.Java
@BindView(R.id.start_filling_action)
public Button btnStartFilling;
扩展函数通常编译为静态函数,因此您可以像这样调用它们:
ExtensionKt.clicks(dataViewHolder.btnStartFilling);
我创建了一个扩展函数来监听按钮的点击监听器,当我尝试从 Java 代码访问它时它不起作用,
无法从 java 文件访问 clicks(),这是我尝试过的
能否请您建议如何解决此问题。
谢谢 R
文件 - Extension.kt
fun Button.clicks(): Flow<Unit> = callbackFlow {
setOnClickListener {
offer(Unit)
}
awaitClose { setOnClickListener(null) }
}
在我的 java 代码中 - FillingFragment.java
@NotNull
@Override
public Flow<Void> getStartFillingObservableFlow() {
return dataViewHolder.btnStartFilling.clicks(); //CLICKS IS NOT. RECOGNISED
}
DataViewHolder.Java
@BindView(R.id.start_filling_action)
public Button btnStartFilling;
扩展函数通常编译为静态函数,因此您可以像这样调用它们:
ExtensionKt.clicks(dataViewHolder.btnStartFilling);