Java-Objekte
Mit JayMo kann auf die meisten Java-Klassen sehr einfach zugegriffen werden.
Das Java-Prefix
Für den Zugriff auf Java-Klassen wird das Prefix "Java_" vor den Klassennamen gesetzt.
Neue Instanz einer ArrayList:
a = Java_ArrayList
a.add( 3 )
a.toString.print
Da das Paket "java.util" generell importiert ist, kann mit "Java_ArrayList" eine ArrayList-Instanz erzeugt werden. Andere Pakete müssen erst eingebunden werden:
>class "java.net.URI"
Java_URI( "file:///tmp/foo.tmp" ).print
Weitere Informationen bzgl. Einbinden von Paketen und Klassen: "Java-Pakete importieren"
Auch ist es möglich, direkt über den vollen Klassenpfad eine Instanz zu erzeugen. Hierzu wird der Klassenpfad mit geschweiften Klammern nach dem Java-Prefix angehängt:
Java_{java.util.ArrayList}
Der Java-Wrapper
Alternativ kann ein Java-Objekt direkt über den Java-Wrapper erzeugt werden:
al = Java( "ArrayList" )
Hier kann auch der gesamte Paket-Pfad übergeben werden:
al = Java( "java.util.ArrayList" )
Anschließend lässt sich mit dieser ArrayList wie gewohnt interagieren. Die Objekt-Funktionen stehen dabei zur Verfügung, somit also auch ".print" und ".echo".
al.print
al.add( "foo" )
al.get( 0 ).print
al.toString.print
Der Vorteil hier ist, dass der Klassenpfad flexibel erzeugt und übergeben werden kann.
pack = "java.util."
class = "ArrayList"
al = Java( pack+class )
Beispiele
sys = Java( "java.lang.System" )
sys.currentTimeMillis.checksum.type.print
sys.getProperty( "os.arch" ).print
Java_{java.lang.System}.err.println( "foo" )
obj = Java( "java.lang.Object" )
obj.getClass.getSimpleName.print