Kann Kotlin Java-Reflexionsmethoden in Funktionen höherer Ordnung umwandeln? Wie geht das wenn möglich?
扔个三星炸死你
扔个三星炸死你 2017-06-23 09:13:40
0
1
717

Kann Kotlin Java-Reflexionsmethoden in Funktionen höherer Ordnung konvertieren? Wie geht das wenn möglich?
Hier ist nur ein Beispiel, die tatsächliche Ausführung führt zu einem Fehler.

class A { fun haveFun(s:String){ print(s); } } fun main(args: Array) { val forName = Class.forName("com.gwsoft.tests.A") forName?.let { val method = forName.getMethod("haveFun", String::class.java) method?.let { val fu=method as ((s:String)-> Unit)//这里并不行 会报java.lang.reflect.Method cannot be cast to kotlin.jvm.functions.Function1 fu("呵呵呵"); } } }
扔个三星炸死你
扔个三星炸死你

Antworte allen (1)
仅有的幸福

反射不行的吧,不过对于单抽象方法的接口(SAM Type),Kotlin 在调用 java 时,有一个 SAM 转换的机制,从而可以使用 lambda ~
比如 view.post{dosomething()},相当于把需要 Runnable 接口的 post 函数转换成了一个高阶函数。

更多: http://www.jianshu.com/p/6386...

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!