| Andreas Rozek |
|
Rhino_11 - Erzeugung von JavaScript-Objekten"Rhino_11" erzeugt von Java aus eine Reihe von (Java-)Objekten und untersucht diese unter JavaScript. Um ein möglichst breites Spektrum abzudecken, werden dazu je eine Instanz der Objekt-Varianten aller primitiven Java-Datentypen, eine Zeichenkette, ein Java-Array (mit Elementen vom Typ "int") und ein JavaScript-Array (mit Elementen unterschiedlichen Typs), eine JavaBean sowie je ein Objekt mit öffentlichen und nicht-öffentlichen Datenfeldern angelegt. Diese Objekte werden globalen (JavaScript-)Variablen zugewiesen und anschließend unter JavaScript untersucht. Das Programm wird ohne weitere Parameter aufgerufen java Rhino_11 und liefert folgende Ausgabe: Rhino_11 - tests appearance of properties created from within Java
aBoolean: true
aByte: 1
aShort: 2
anInteger: 3
aLong: 4
aString: (anything)
anArray: true,1,2,3,4,(anything)
aJavaArray: [I@3ee284
or 0, 1, 2, 3, 4
aSilentObject: true, 1, 2, 3, 4, 5.0, 6.0, "(anything)"
or class Rhino_11$SilentObject
aGossipObject: true, 1, 2, 3, 4, 5.0, 6.0, "(anything)"
or true, 4, class Rhino_11$GossipObject, (anything), 3, 6, 5, 2, 1
aBeanObject: true, 1, 2, 3, 4, 5.0, 6.0, "(anything)"
or 5, 2, 3, true, class Rhino_11$BeanObject, 6, (anything), 4, 1
anUserObject: [object Object]
or 1, 2, 5, 6, ,,, 3, (anything), 4, true
a more detailled examination of "aSilentObject":
notifyAll: function notifyAll() {/* void notifyAll() */}
toString: function toString() {/* java.lang.String toString() */}
equals: function equals() {/* boolean equals(java.lang.Object) */}
class: class Rhino_11$SilentObject
wait: function wait() {/* void wait() void wait(long,int) void wait(long) */}
hashCode: function hashCode() {/* int hashCode() */}
getClass: function getClass() {/* java.lang.Class getClass() */}
notify: function notify() {/* void notify() */}
a more detailled examination of "aGossipObject":
aBoolean: true
aLong: 4
notifyAll: function notifyAll() {/* void notifyAll() */}
toString: function toString() {/* java.lang.String toString() */}
equals: function equals() {/* boolean equals(java.lang.Object) */}
class: class Rhino_11$GossipObject
aString: (anything)
anInteger: 3
wait: function wait() {/* void wait() void wait(long,int) void wait(long) */}
aDouble: 6
hashCode: function hashCode() {/* int hashCode() */}
aFloat: 5
aShort: 2
getClass: function getClass() {/* java.lang.Class getClass() */}
aByte: 1
notify: function notify() {/* void notify() */}
a more detailled examination of "aBeanObject":
getaLong: function getaLong() {/* long getaLong() */}
aFloat: 5
getaFloat: function getaFloat() {/* float getaFloat() */}
notifyAll: function notifyAll() {/* void notifyAll() */}
getaByte: function getaByte() {/* byte getaByte() */}
aShort: 2
getaShort: function getaShort() {/* short getaShort() */}
getaDouble: function getaDouble() {/* double getaDouble() */}
getaBoolean: function getaBoolean() {/* boolean getaBoolean() */}
getaString: function getaString() {/* java.lang.String getaString() */}
anInteger: 3
aBoolean: true
equals: function equals() {/* boolean equals(java.lang.Object) */}
notify: function notify() {/* void notify() */}
class: class Rhino_11$BeanObject
getanInteger: function getanInteger() {/* int getanInteger() */}
aDouble: 6
wait: function wait() {/* void wait() void wait(long,int) void wait(long) */}
aString: (anything)
toString: function toString() {/* java.lang.String toString() */}
hashCode: function hashCode() {/* int hashCode() */}
aLong: 4
aByte: 1
getClass: function getClass() {/* java.lang.Class getClass() */}
Aus der Programmausgabe wird folgendes klar:
Die Funktion listProperties im JavaScript-Teil des Programmes zeigt, wie man evtl. "unerwünschte" Datenfelder eines (JavaScript-)Objektes in einer for-in-Schleife ausblenden kann. QuelltexteAlle hier vorgestellten Programme und Skripte sind im Quelltext verfügbar: |
| http://www.Andreas-Rozek.de/Rhino/Acquainting/Rhino_11.html | (letzter Stand: 06.04.2002) |