Ich versuche, wenn ein Typ mit einem zu einem anderen Typ entspricht zu überprüfen, ob Ausdruck wie folgt:Kotlin-Klassenliterale mit leerer linker Seite werden noch nicht unterstützt?
if (String::class is Any::class)
Das gibt mir die Fehlerklasse Literale mit leerer linker Seite werden noch nicht unterstützt. Kann jemand diesen Fehler erklären und/oder mir sagen, wie ich diesen Check machen soll?
edit (Erläuterung): Ich kann keine Gleichheitsprüfung durchführen, weil ich wissen muss, ob die Klasse auf der linken Seite entweder der Klasse auf der rechten Seite entspricht oder eine Unterklasse davon ist. Also, wenn eine Instanz der Klasse auf der linken Seite sicher in die Klasse auf der rechten Seite umgewandelt werden kann.
Grundsätzlich muss ich das Äquivalent von:
if ("A string" is Any)
Aber ohne eine String-Instanz mit, String gerade hier ein Beispiel verwendet wird.
Mein Kollege einen anderen SO Post gefunden, die sagt Kotlin hat Es gibt keine Möglichkeit, dies zu tun, und die einzige Möglichkeit besteht darin, Java-Reflektion zu verwenden (vorausgesetzt, Sie richten sich an JVM). http://stackoverflow.com/questions/35851719/how-to-compare-classes-and-interfaces/35852445#35852445 – zjuhasz