La función de sistema JavaLib.setField establece el valor de un campo de un objeto o clase nativa Java. La función JavaLib.setField es una de las diversas funciones de acceso Java.
JavaLib.setField( identificadorOClase javaObjId in, campo STRING in, valor anyEglPrimitive in)
Este argumento es un literal de serie o una variable de tipo CHAR, DBCHAR, MBCHAR, STRING o UNICODE. Si especifica un identificador de un objeto, el identificador debe haberse convertido temporalmente a objID, como en el ejemplo que figura más adelante. EGL elimina blancos de un solo byte y de doble byte del principio y el final del valor del argumento, que es sensible a mayúsculas y minúsculas.
Este argumento es un literal de serie o una variable de tipo CHAR, DBCHAR, MBCHAR, STRING o UNICODE. Se eliminan blancos de un solo byte y de doble byte del principio y el final de la serie, que es sensible a mayúsculas y minúsculas.
Puede ser necesaria una conversión temporal, como se especifica en el apartado Acceso Java (palabras del sistema).
Se aplican las normas de conversión de tipos Java. Por ejemplo, no se produce ningún error si se asigna un tipo short a un campo declarado como int.
JavaLib.setField( (objID)"myId", "myField", (short)myNumItem );
Un error producido durante el proceso de JavaLib.setField puede establecer SysVar.errorCode en uno de los valores que figuran en la tabla siguiente.
Valor de SysVar.errorCode | Descripción |
---|---|
00001000 | Un método invocado ha lanzado una excepción o como resultado de una inicialización de clase. |
00001001 | El objeto era nulo o el identificador especificado no estaba en el espacio de objetos |
00001002 | No existe o no puede cargarse un método, campo o clase públicos con el nombre especificado |
00001003 | El tipo primitivo EGL no coincide con el tipo esperado en Java |
00001007 | Se ha lanzado una excepción de tipo SecurityException o IllegalAccessException durante un intento de obtener información acerca de un método o campo; o se ha intentado establecer el valor de un campo declarado como final |
00001009 | Debe especificarse un identificador en lugar de un nombre de clase; el método o campo no es estático |
Conceptos relacionados
Diagrama de sintaxis para sentencias y mandatos EGL