JRuby: Mit Java und Ruby die Entwicklungsarbeit optimieren

Bis jetzt wurde die Java-Methode zur Übergabe von Parametern verwendet. Dank Ruby kann man jedoch die Klammern weglassen.


irb(main):007:0> java.lang.System::out.println "Hello World"
Hello World
=> nil

Ein weiterer Vorteil von Ruby liegt darin, dass man leicht Einblick in Objekte erlangen kann. Die Reflection-API von Java wird dadurch quasi überflüssig.

Um einen Überblick über alle Methoden zu erhalten, muss einfach die methods-Funktion des Objekts aufgerufen werden, so wie man es auch in Ruby tun würde.


Auf ähnliche Weise lassen sich auch die Konstanten ausfindig machen:


irb(main):009:0> java.lang.Math.constants
=> ["PI", "E"]

Oder die Vorläufer einer Klasse:


irb(main):011:0> java.lang.Math.ancestors
=> [Java::JavaLang::Math, Java::JavaLang::Object, 
ConcreteJavaProxy, JavaProxy, JavaProxyMethods, Object, Kernel]

Sogar der Typ der Klasse lässt sich so anzeigen:


irb(main):012:0> java.lang.Math.class
=> Class
irb(main):013:0> java.lang.class
=> Module

Das Ausschreiben der vollständigen Namen von Paketen ist ermüdend. Um eine Klasse zu importieren, lässt sich auch die Funktion include_class einsetzen.


irb(main):015:0> include_class java.lang.System
=> Java::JavaLang::System

Die Klasse lässt sich dann genauso verwenden, als hätte man eine Anweisung in Java importiert.


irb(main):016:0> System.out.println("Wir wurden importiert")
Wir wurden importiert
=> nil

Das Importieren einer Klasse schlägt jedoch fehl, wenn versucht wird, eine Klasse zu laden, die im Ruby-Namensraum bereits existiert.


irb(main):014:0> include_class java.lang.Math
(eval):1 warning: already initialized constant Math
=> Java::JavaLang::Math

Die Lösung liegt hier in der Umbenennung der Klasse. In diesem Fall wird aus der Klasse Math die Klasse JMath.


irb(main):017:0> include_class('java.lang.Math')
{|package,name| "J#{name}"}
=> ["java.lang.Math"]

Diese kann dann folgendermaßen eingesetzt werden:


Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu JRuby: Mit Java und Ruby die Entwicklungsarbeit optimieren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *