系统函数 JavaLib.setField 设置本机 Java™ 对象或类中的字段的值。JavaLib.setField 是若干 Java 访问函数的其中一个。
JavaLib.setField( identifierOrClass javaObjId in, field STRING in, value anyEglPrimitive in)
此自变量是字符串文字或类型为 CHAR、DBCHAR、MBCHAR、STRING 或 UNICODE 的变量。如果正在指定对象的标识,则该标识必须被强制类型转换为 objID,如稍后的示例所示。EGL 将从自变量值的开头和末尾除去单字节和双字节空格,其中,自变量值是区分大小写的。
此自变量是字符串文字或类型为 CHAR、DBCHAR、MBCHAR、STRING 或 UNICODE 的变量。将从字符串的开头和末尾除去单字节和双字节空格,其中,字符串是区分大小写的。
可能需要进行强制类型转换,这在 Java 访问(系统字)中有所指定。
Java 类型转换规则生效。例如,即使将 short 赋给声明为 int 的字段,也不会发生错误。
JavaLib.setField( (objID)"myId", "myField", (short)myNumItem );
在处理 JavaLib.setField 期间发生的错误会将 SysVar.errorCode 设置为下表中列示的值。
SysVar.errorCode 中的值 | 描述 |
---|---|
00001000 | 被调用方法抛出了异常,或者作为类初始化的结果而抛出了异常 |
00001001 | 对象为 null,或者指定的标识不在对象空间中 |
00001002 | 具有指定名称的公用方法、字段或类不存在或无法被装入 |
00001003 | EGL 基本类型与 Java 中期望的类型不匹配 |
00001007 | 在尝试获取关于方法或字段的信息时抛出了 SecurityException 或 IllegalAccessException;或者尝试设置已被声明为最终字段的字段的值 |
00001009 | 必须指定标识而不是类名;方法或字段不是静态的 |
相关概念
EGL 语句和命令的语法图