Invocación de métodos (INVOKE)
En un cliente Java™ , puede crear instancias de objeto de clases que se han implementado en COBOL e invocar métodos en esos objetos utilizando la sintaxis Java estándar. En un cliente COBOL, puede invocar métodos definidos en clases Java o COBOL codificando la sentencia INVOKE .
Acerca de esta tarea
Invoke Account "createAccount"
using by value 123456
returning anAccount
Invoke anAccount "credit" using by value 500.
La primera sentencia INVOKE de ejemplo anterior utiliza el nombre de clase Account para invocar un método denominado createAccount. Este método debe estar definido o heredado en la clase Account y debe ser uno de los tipos siguientes:
- Un método estático Java
- Un método de fábrica COBOL
La frase using by value 123456 indica que 123456 es un argumento de entrada para el método y se pasa por valor. El argumento de entrada 123456 y el elemento de datos devuelto anAccount deben ajustarse a la definición de los parámetros formales y el tipo de retorno, respectivamente, del método createAccount (posiblemente sobrecargado).
La segunda sentencia INVOKE utiliza la referencia de objeto devuelta anAccount para invocar el método de instancia credit, que se define en la clase Account. El argumento de entrada 500 debe ajustarse a la definición de los parámetros formales del método credit (posiblemente sobrecargado).
Codifique el nombre del método que se invocará como literal o como identificador cuyo valor en tiempo de ejecución coincida con el nombre-método en la firma del método de destino. El nombre-método debe ser un literal alfanumérico o nacional o un elemento de datos alfabético, alfanumérico o nacional de categoría y se interpreta de forma sensible a las mayúsculas y minúsculas.
Cuando codifica una sentencia INVOKE utilizando una referencia de objeto (como en la segunda sentencia de ejemplo anterior), la sentencia empieza por uno de los dos formatos siguientes:
Invoke objRef "literal-name" . . .
Invoke objRef identifier-name . . .
Cuando el nombre-método es un identificador, debe definir la referencia de objeto (objRef) como USAGE OBJECT REFERENCE sin ningún tipo especificado, es decir, como una referencia de objeto universal.
Si un método invocado no está soportado en la clase a la que hace referencia la referencia de objeto, se genera una condición severity-3 Language Environment ® en tiempo de ejecución a menos que codifique la frase ON EXCEPTION en la sentencia INVOKE .
Puede utilizar el terminador de ámbito opcional END-INVOKE con la sentencia INVOKE .
La sentencia INVOKE no establece el registro especial RETURN-CODE .
Frase USING para pasar argumentos
Frase RETURNING para obtener un valor devuelto
DIVISIÓN PROCEDIMIENTO para definir un método de instancia de clase
Codificación de tipos de datos interoperables en COBOL y Java
Invocación de métodos sobrescritos de la superclase
Invocación de métodos de fábrica o estáticos