Method Signatures

Parameter signatures are used by the JNI functions to get the method ID of a method in a Java class so that it can be called by non-Java programs. Two examples are "(I)I" and "(Z)Z". The first one describes a Java method taking an int parameter and returning an int value. The second is a Java method taking a boolean parameter and returning a boolean value. For a Java method like this:

int MyJavaMethod( boolean param1, int param2, long param3, double param4)

The signature would look like this:

(ZIJD)I.  

The return value comes last after the close parenthesis. "Z" was chosen to represent boolean because "B" is used to describe a byte data value. The topic Supported Parameter Types shows a list of the parameter types supported by ACUCOBOL-GT. An "L" represents some object type. "J" is used for longs. Everything else in Java is an object (strings, arrays, etc.), and the signatures look like this:

Object Types Signature
String Ljava/lang/String
Object Ljava/lang/Object
Array of strings     [Ljava/lang/String

Example syntax is shown in the following table:

Signature Description
()V Java-defined void method taking no parameters
(Z)I Takes boolean, returns int
(ZISDJ)Z Takes boolean, int, short, double, long, returns boolean
(B[J[I)X Takes byte, long array, int array, returns string
(XLjava/lang/Object;)Ljava/lang/String;      Takes string, object, returns string
(C)C Takes char, returns char