JavaLib.getField

La función de sistema JavaLib.getField devuelve el valor de un campo especificado de un objeto o clase especificados. La función JavaLib.getField es una de las diversas funciones de acceso Java.

Diagrama de sintaxis de JavaLib.getField
resultado
El campo de resultado es obligatorio y recibe el valor del campo especificado en el segundo argumento. Se aplican las siguientes normas:
  • Si el valor recibido es BigDecimal, BigInteger, byte, short, int, long, float o double, el campo de resultado debe ser un tipo de datos numérico. Las características no necesitan coincidir con el valor; por ejemplo, un tipo float puede almacenarse en una variable de retorno declarada sin dígitos decimales. Para obtener detalles acerca del manejo de desbordamiento, consulte VGVar.handleOverflow y sysVar.overflowIndicator.
  • Si el valor recibido es de tipo booleano, el campo de resultado debe ser de tipo primitivo numérico. El valor es 1 para true y 0 para false.
  • Si el valor recibido es una matriz de bytes, el campo de resultado debe ser de tipo HEX. Para obtener detalles acerca de la discrepancia de longitudes, consulte el tema Asignaciones.
  • Si el valor recibido es un de tipo String o char, el campo de resultado debe ser de tipo CHAR, DBCHAR, MBCHAR, STRING o UNICODE--
    • Si el campo de resultado es de tipo MBCHAR, STRING o UNICODE, el valor recibido es siempre adecuado
    • Si el campo de resultado es de tipo CHAR, pueden producirse problemas si el valor recibido incluye caracteres que corresponden a caracteres DBCHAR
    • Si el campo es de tipo DBCHAR, pueden producirse problemas si el valor recibido incluye caracteres Unicode que corresponden a caracteres de un solo byte

    Para obtener detalles acerca de la discrepancia de longitudes, consulte el tema Asignaciones.

  • Si el método nativo Java no devuelve ningún valor o devuelve un nulo, se produce el error 00001004, como se indica más adelante.
identificadorOClase
Este argumento es una de las siguientes entidades:
  • Un identificador que hace referencia a un objeto del espacio de objetos; o
  • El nombre totalmente calificado de una clase Java.

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. Si tiene previsto especificar un campo estático en el siguiente argumento, es aconsejable especificar una clase en este argumento.

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.

campo
El nombre del campo que debe leerse.

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.

A continuación se ofrece un ejemplo:
  myVar = JavaLib.getField( (objId)"myID", "myField" );

Un error producido durante el proceso de JavaLib.getField 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
00001004 El método ha devuelto nulo, no devuelve ningún valor o el valor de un campo era nulo
00001005 El valor devuelto no coincide con el tipo de la variable de retorno
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

Tareas relacionadas
Diagrama de sintaxis

Consulta relacionada
Asignaciones
BIN y los tipos enteros (integer)
Biblioteca JavaLib de EGL
Manejo de excepciones

JavaLib.invoke
JavaLib.isNull
JavaLib.isObjID
JavaLib.qualifiedTypeName
JavaLib.remove
JavaLib.removeAll
JavaLib.setField
JavaLib.store
JavaLib.storeCopy
JavaLib.storeField
JavaLib.storeNew

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.