Gibt es eine Möglichkeit, ein Java-Objekt explizit von JRuby in eine andere Java-Klasse zu werfen?Casting-Objekte in JRuby
Manchmal möchte ich SomeJavaClass#aMethod(MySuperClass)
anstelle von SomeJavaClass#aMethod(MyClass)
von JRuby aufrufen können.
Von Java, würde ich dies tun:
someJavaObject.aMethod((MySuperClass) myObj);
aber ich #cast
Ruby-Methode oder so etwas nicht das Äquivalent von JRuby zu tun sehen.
Hinweis, dass die Frage Casting Java Objects From JRuby eine Antwort für den allgemeinen Fall fehlt, weshalb ich die Frage erneut stelle.
Ich denke, es wäre nützlich hinzuzufügen, dass wenn Sie versuchen, in nicht-primitive Klassen zu werfen, sollten Sie die vollständige Hierarchie verwenden. Um zB 'obj' in die' ij.text.TextWindow' Klasse zu schreiben, müßte man 'obj.to_java (Java :: Ij :: text :: TextWindow)' schreiben. – gregoltsov