Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

JCI_CallStaticMethod

&pagelevel(5)&pagelevel

Die Funktion ruft eine statische Methode auf.
Sie ist äquivalent zu den JNI-Funktionen CallStatic<type>Method. Sie bietet jedoch zusätzlich die Möglichkeit, Zeichenketten direkt zu übergeben bzw. zu erhalten.

Aufruf

CALL 'JCI_CallStaticMethod' USING cObj mID arg res

cObj

Klassenobjekt

mID

Methoden-ID

arg

Methodenargumente

res

Methodenergebnis

Argumente

cObj

Datenfeld des Typs JCI-object
Klassen-Objekt, dessen Methode gerufen werden soll.

mID

Datenfeld des Typs JCI-handle
ID der Methode, die gerufen werden soll. Die Methoden-ID muss durch den Aufruf der Funktion JCI_GetStaticMethodID für die Klasse cObj beschafft werden.

arg

eine Struktur der Form MethodArg Beschreibung der Argumente für den Methodenaufruf (siehe Abschnitt „Argumente und Ergebniswerte von Java-Methoden").

res

eine Struktur der Form MethodRes
Beschreibung von Rückgabewert für den Methodenaufruf und Fehlerinformation (siehe Abschnitt „Argumente und Ergebniswerte von Java-Methoden"). Ist der Rückgabewert der Methode ein NULL-Objekt, so wird für die Typen RES-ANUM-STRING und RES-NAT-STRING das Längenfeld der Zielstruktur auf 0 gesetzt, der Textbereich bleibt unverändert.

Returnwert (RETURN-CODE)

JCI-RET-OK

Der Aufruf war erfolgreich.

JCI-RET-ENOVM

Es ist keine Java-VM gestartet.

JCI-RET-ENULLOBJ

cObj ist JCI-NULL.

JCI-RET-ENULLID

mId ist JCI-NULL.

JCI-RET-EARGUMENT

cObj ist kein Klassen-Objekt.

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-ERESTYPE

Der Wert des Feldes ResType ist ungültig.

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-ERESCONV

Bei der Konvertierung des Ergebnisses ist ein Fehler aufgetreten.
Das Feld ResErrCode enthält einen genaueren Fehlercode.

JCI-RET-EEXCEPT

Nach dem Aufruf der Methode existiert eine Exception. Es wird nicht unterschieden, ob die Exception durch diesen oder einen früheren Funktionsaufruf ausgelöst wurde.
Das dem Methodenergebnis entsprechende Feld in der Struktur res ist unverändert.

Exceptions

Alle Exceptions, die von der aufgerufenen Methode geworfen werden.

Beispiel

DATA DIVISION.
WORKING-STORAGE SECTION.
...
01 MethodArgs.
  COPY JCI-METHODARGS REPLACING ==<max-arguments>== BY 2.
01 MethodRes.
  COPY JCI-METHODRES.
...
01 myName.
  05 len PIC S9(9) COMP-5 VALUE 30.
  05 txt PIC X(30).
01 classObj  TYPE JCI-object.
01 methodID  TYPE JCI-handle.
PROCEDURE DIVISION.
...
MOVE 1 TO CallArgNum
SET RES-VOID TO TRUE
SET ARG-ANUM-STRING(1) IGNORE-TRAILING-SPACES(1) TO TRUE
SET ArgValAddr(1) TO ADDRESS OF myName
CALL 'JCI_CallStaticMethod' USING classObj methodId
                            MethodArgs MethodRes
IF RETURN-CODE NOT = JCI-RET-OK
...