Die Funktion erzeugt ein neues Java-Objekt.
Sie ist äquivalent zur JNI-Funktion NewObject
. Sie bietet jedoch zusätzlich die Möglichkeit, Zeichenketten direkt zu übergeben.
Aufruf
CALL 'JCI_NewObject' USING
cObj mID arg res
cObj | Klassenobjekt |
Argumente
cObj | Datenfeld des Typs |
mID | Datenfeld des Typs |
arg | eine Struktur der Form |
res | eine Struktur der Form |
Returnwert (RETURN-CODE)
JCI-RET-OK
Der Aufruf war erfolgreich.
JCI-RET-ENULLOBJ
cObj ist JCI-NULL
.
JCI-RET-ENULLID
mId ist JCI-NULL
.
JCI-RET-EARGUMENT
cObj ist kein Klassen-Objekt oder verweist auf ein Array.
JCI-RET-ENOVM
Es ist keine Java-VM gestartet.
JCI-RET-EARGVERS
Die statisch generierte Versionsnummer in arg ist ungültig (eventuell überschrieben).
JCI-RET-ERESVERS
Die statisch generierte Versionsnummer in res ist ungültig (eventuell überschrieben).
JCI-RET-EARGNUM
Die Anzahl der übergebenen Argumente (CallArgNum
) ist kleiner als 0 oder größer, als der Wert, der für <max-arguments>
eingesetzt wurde (siehe Abschnitt „JCI-METHODARGS - Funktionsargumente").
JCI-RET-EARGTYPE
Der Wert des Feldes ArgType
ist ungültig. Das Feld ResErrIndex
enthält die Nummer des fehlerhaften Argumentes.
JCI-RET-EARGCONV
Bei der Konvertierung eines Argumentes ist ein Fehler aufgetreten.
Das Feld ResErrIndex
enthält die Nummer des Argumentes, das Feld ResErrCode
einen genaueren Fehlercode.
JCI-RET-ERR
Das Objekt konnte nicht erzeugt werden.
Exceptions
Alle Exceptions, die vom Konstruktor geworfen werden.
Die übrigen von der Funktion geworfenen Exceptions entsprechen denen der JNI-Funktion NewObject
.
Beispiel
DATA DIVISION. WORKING-STORAGE SECTION. COPY JCI-TYPEDEFS. 01 JCIConstants. COPY JCI-CONST. ... 01 className. 02 PIC S9(9) COMP-5 VALUE 30. 02 PIC X(30) VALUE 'myClass'. 01 methodName. 05 PIC S9(9) COMP-5 VALUE 9. 05 PIC X(10) VALUE '<init>'. 01 methodSig. 05 PIC S9(9) COMP-5 VALUE 80. 05 PIC X(80) VALUE '(Ljava/lang/String;Ljava/lang/String;)V'. 01 nText. 05 PIC S9(9) COMP-5 VALUE 8. 05 PIC N(20) VALUE N'COBOL'. 01 aText. 05 PIC S9(9) COMP-5 VALUE 8. 05 PIC X(20) VALUE 'Java'. 01 classObj TYPE JCI-object. 01 instanceObj TYPE JCI-object. 01 methodID TYPE JCI-handle. 01 MethodArgs. COPY JCI-METHODARGS REPLACING ==<max-arguments>== BY 2. 01 MethodRes. COPY JCI-METHODRES. ... PROCEDURE DIVISION. ... CALL 'JCI_FindClass' USING className classObject IF RETURN-CODE NOT = JCI-RET-OK ... END-IF CALL 'JCI_GetMethodID' USING classObj methodName methodSig methodID IF RETURN-CODE NOT = JCI-RET-OK ... END-IF MOVE 2 TO CallArgNum SET ARG-NAT-STRING(1) IGNORE-TRAILING-SPACES(1) TO TRUE SET ArgValAddr(1) TO ADDRESS OF nText SET ARG-ANUM-STRING(2) IGNORE-TRAILING-SPACES(2) TO TRUE SET ArgValAddr(2) TO ADDRESS OF aText CALL 'JCI_NewObject' USING classObj methodId MethodArgs MethodRes IF RETURN-CODE NOT = JCI-RET-OK ... END-IF MOVE ResValObject TO instanceObject ...