| Andreas Rozek |
|
Rhino_24 - Rhino "Host Objects"Der Java-Teil von "Rhino_24" definiert ein Rhino "Host Object" mit Konstruktor, "statischen" und "nicht-statischen" Funktionen sowie je einem veränderlichen und einem unveränderlichen Datenfeld. Unter JavaScript wird dieses "Host Object" instanziert und untersucht. Die Quelltexte von "Rhino_24.java" und "Rhino_24.js" sind sehr einfach - im Grunde genommen geht es nur darum, die Rhino-Namenskonvention für Methoden und Datenfelder in einem "Host Object" zu beachten. Anhand dieser Information generiert Rhino beim "Laden" der Java-Klasse (für das "Host Object") automatisch einen passenden "Wrapper", der das "Method Dispatching" sowie die Typ-Konvertierung zwischen Java und JavaScript übernimmt. Selbst von einer Java-Methode geworfene Ausnahmen lassen sich anschließend problemlos abfangen und unter JavaScript behandeln. Das Programm wird ohne weitere Parameter aufgerufen java Rhino Rhino_24.js und liefert folgende Ausgabe: Rhino_24 - constructs and examines a Rhino "Host Object" defining an initialization value for "HostObjects" instantiating a "HostObject": (no enumerable properties found) State before reset: - HostObject.Value = 0 - HostObject.isZero() = true State after reset: - HostObject.Value = 1 - HostObject.isZero() = false StartValue = 1 triggering an exception throw by "HostObject" caught exception: - localizedMessage: (exception thrown by a Rhino "Host Object") - message: (exception thrown by a Rhino "Host Object") Die Programmausgabe wird zweckmäßigerweise zusammen mit den Quelltexten von "Rhino_24.java" und "Rhino_24.js" analysiert - wer sich ein wenig mit der "Host Object"-Technik auskennt, für den birgt die Ausgabe jedoch keinerlei Überraschungen. QuelltexteAlle hier vorgestellten Programme und Skripte sind im Quelltext verfügbar: |
| http://www.Andreas-Rozek.de/Rhino/Acquainting/Rhino_24.html | (letzter Stand: 06.04.2002) |