簡體   English   中英

在 Java 代碼中使用 kotlin 擴展 function

[英]Using kotlin extension function in Java code

我創建了一個擴展 function 用於監聽按鈕的單擊監聽器,當我嘗試從 Java 代碼訪問它時它不起作用,

無法從 java 文件訪問 clicks(),這是我嘗試過的

你能建議如何解決這個問題。

謝謝 R

文件 - 擴展名.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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM