Coding interoperable data types in COBOL and Java

Your COBOL program can use only certain data types when communicating with Java.

Table 1. Interoperable data types in COBOL and Java
Primitive Java data type Corresponding COBOL data type
boolean1 PIC X followed by exactly two condition-names of this form:
level-number data-name PIC X.
88           data-name-false value X'00'.
88           data-name-true  value X'01' through X'FF'.
byte1 Single-byte alphanumeric: PIC X or PIC A
short USAGE BINARY, COMP, COMP-4, or COMP-5, with PICTURE clause of the form S9(n), where 1<=n<=4
int USAGE BINARY, COMP, COMP-4, or COMP-5, with PICTURE clause of the form S9(n), where 5<=n<=9
long USAGE BINARY, COMP, COMP-4, or COMP-5, with PICTURE clause of the form S9(n), where 10<=n<=18
float2 USAGE COMP-1
double2 USAGE COMP-2
char Single-character elementary national: PIC N USAGE NATIONAL. (Cannot be a national group.)
class types (object references) USAGE OBJECT REFERENCE class-name
  1. You must distinguish boolean from byte, because they each correspond to PIC X. PIC X is interpreted as boolean only if you define an argument or a parameter with the two condition-names as shown. Otherwise, a PIC X data item is interpreted as the Java byte type. A single-byte alphanumeric item can contain either EBCDIC or native content.
  2. Java floating-point data is represented in IEEE floating point. Floating-point data items that you pass as arguments in an INVOKE statement or receive as parameters from a Java method must be in the native format. Therefore if you compile using the -host option of the cob2_j command or using the FLOAT(S390) option, each floating-point data item that you pass to or receive from a Java method must be declared with the NATIVE phrase in its data description.

related references  
cob2, cob2_j, and cob2_r options
  
CHAR  
FLOAT