kotlin-メソッド参照を関数に渡します

ピーター

次のJavaクラスがあるとしましょう。

public class A {
   public Result method1(Object o) {...}
   public Result method2(Object o) {...}
   ...
   public Result methodN(Object o) {...}
}

次に、私のKotlinコードで:

fun myFunction(...) {
    val a: A = ...
    val parameter = ...
    val result = a.method1(parameter) // what if i want methodX?
    do more things with result
}

そして、どのmethodXが内部で呼び出されるかを選択できるようにしたいmyFunctionJavaではA::method7、引数として渡して呼び出します。Kotlinではコンパイルされません。Kotlinでどのように解決すればよいですか?

クリス

Kotlinでメソッド参照を渡すこともできます(反射である重いハンマーは必要ありません)。

fun myFunction(method: A.(Any) -> Result) {
    val a: A = ...
    val parameter = ...
    val result = a.method(parameter)
    do more things with result
}

myFunction(A::method1)
myFunction {/* do something in the context of A */}

これmethodはの一部として宣言さAます。つまり、通常のobject.method()表記で呼び出すことができますこれは、メソッド参照構文を使用したJustWorks™です。

同じ呼び出し構文で機能するが、Aより明確にする別の形式もあります

fun myFunction(method: (A, Any) -> Result) { ... }

myFunction(A::method1)
myFunction {a, param -> /* do something with the object and parameter */}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JavaメソッドとしてKotlin関数への参照を取得する

分類Dev

Javaからkotlinメソッドにパラメータとして関数を渡す方法?

分類Dev

Kotlinでメソッド参照を使用して `suspend`関数を使用できないのはなぜですか?

分類Dev

Kotlin:関数への参照/ポインターを渡します

分類Dev

我々は、タイプ(のkotlin関数にするJavaメソッドを渡すことができます) - >ユニット?

分類Dev

非同期メソッドの結果をKotlinの変数に保存します

分類Dev

Kotlinから、関数パラメーターを必要とするJavaメソッドを呼び出します

分類Dev

Kotlinの別のメソッドにパラメーターとして静的メソッドを渡す

分類Dev

静的メソッドの参照を関数に渡します

分類Dev

Kotlinからnull不可のJavaメソッドにnullを渡す

分類Dev

Kotlin拡張関数-既存のメソッドをオーバーライドします

分類Dev

Kotlinのジェネリック拡張関数/メソッドから関数参照を派生させる

分類Dev

Kotlinのメソッドを使用して変数に新しい値を割り当てますか?

分類Dev

KotlinインターフェースのSwift実装をKotlinメソッドに渡すときにエラーが発生しました

分類Dev

Javaメソッド参照コードをKotlinに変換する方法

分類Dev

Kotlin:@seeを使用してkDocのメソッドを参照するにはどうすればよいですか?

分類Dev

Kotlin:メソッド参照が機能していませんか?

分類Dev

Javaメソッドをkotlinに変換します。ラムダ式を返す

分類Dev

メソッド参照を使用するKotlin setOnClickListenerが機能しない

分類Dev

Kotlinで型をジェネリックメソッドに渡す方法は?

分類Dev

groovyのように、Kotlinで変数または文字列名を渡す実行時にメソッドを見つけることは可能ですか?

分類Dev

varargパラメーターの一部としてnullをKotlinからJavaメソッドに渡す

分類Dev

Kotlin:任意のタイプの関数参照を変数に格納します

分類Dev

DaggerModuleクラスのStaticメソッドをKotlinに変換します

分類Dev

Kotlinのメソッドで例外をスローします

分類Dev

kotlinのSwaggerCodegenメソッドのcontentHeadersを変更します

分類Dev

kotlinのパラメーターとして関数を渡す

分類Dev

kotlinのメソッド時間の関数は何ですか?

分類Dev

複数のパラメータの型制約にKotlinにおけるジェネリック型を持つメソッドを呼び出します

Related 関連記事

  1. 1

    JavaメソッドとしてKotlin関数への参照を取得する

  2. 2

    Javaからkotlinメソッドにパラメータとして関数を渡す方法?

  3. 3

    Kotlinでメソッド参照を使用して `suspend`関数を使用できないのはなぜですか?

  4. 4

    Kotlin:関数への参照/ポインターを渡します

  5. 5

    我々は、タイプ(のkotlin関数にするJavaメソッドを渡すことができます) - >ユニット?

  6. 6

    非同期メソッドの結果をKotlinの変数に保存します

  7. 7

    Kotlinから、関数パラメーターを必要とするJavaメソッドを呼び出します

  8. 8

    Kotlinの別のメソッドにパラメーターとして静的メソッドを渡す

  9. 9

    静的メソッドの参照を関数に渡します

  10. 10

    Kotlinからnull不可のJavaメソッドにnullを渡す

  11. 11

    Kotlin拡張関数-既存のメソッドをオーバーライドします

  12. 12

    Kotlinのジェネリック拡張関数/メソッドから関数参照を派生させる

  13. 13

    Kotlinのメソッドを使用して変数に新しい値を割り当てますか?

  14. 14

    KotlinインターフェースのSwift実装をKotlinメソッドに渡すときにエラーが発生しました

  15. 15

    Javaメソッド参照コードをKotlinに変換する方法

  16. 16

    Kotlin:@seeを使用してkDocのメソッドを参照するにはどうすればよいですか?

  17. 17

    Kotlin:メソッド参照が機能していませんか?

  18. 18

    Javaメソッドをkotlinに変換します。ラムダ式を返す

  19. 19

    メソッド参照を使用するKotlin setOnClickListenerが機能しない

  20. 20

    Kotlinで型をジェネリックメソッドに渡す方法は?

  21. 21

    groovyのように、Kotlinで変数または文字列名を渡す実行時にメソッドを見つけることは可能ですか?

  22. 22

    varargパラメーターの一部としてnullをKotlinからJavaメソッドに渡す

  23. 23

    Kotlin:任意のタイプの関数参照を変数に格納します

  24. 24

    DaggerModuleクラスのStaticメソッドをKotlinに変換します

  25. 25

    Kotlinのメソッドで例外をスローします

  26. 26

    kotlinのSwaggerCodegenメソッドのcontentHeadersを変更します

  27. 27

    kotlinのパラメーターとして関数を渡す

  28. 28

    kotlinのメソッド時間の関数は何ですか?

  29. 29

    複数のパラメータの型制約にKotlinにおけるジェネリック型を持つメソッドを呼び出します

ホットタグ

アーカイブ