All Manuals > LispWorks User Guide and Reference Manual > 41 The LW-JI Package

NextPrevUpTopContentsIndex

read-java-field

checked-read-java-field

set-java-field

check-java-field

java-field-class-name-for-setting

Functions
Summary

Access a field, either static or in a Java object.

Package

lw-ji

Signature

read-java-field full-field-name &optional object => field-value

Signature

checked-read-java-field full-field-name &optional object => field-value-or-nil, nil-or-condition

Signature

set-java-field full-field-name value &optional object => value

Signature

check-java-field full-field-name static-p => result

Signature

java-field-class-name-for-setting full-field-name static-p => class-name or nil

Arguments

full-field-name

A string.

object

A Java object or nil.

value

A type.

static-p

A boolean.

Values

field-value

The value of the field.

field-value-or-nil

The value of the field or nil.

nil-or-condition

nil or a cl:error.

result

A boolean.

Description

The functions read-java-field, checked-read-java-field and set-java-field access the value of a field in a Java Object or a static field.

The functions check-java-field and java-field-class-name-for-setting are used to check whether it is possible to access the value of the field.

full-field-name needs to be a full field name including the package and class, for example "java.io.File.separator".

If object is supplied and is non-nil, it must be a Java object from which to read/to which set the value. The field must be non-static in this case. If object is nil, the field must be static.

read-java-field returns the value of the field. If it fails to get it, it signals an error. If the class is not found, this is a java-class-error, if the field is not found it is a java-field-error.

checked-read-java-field returns the value like read-java-field and another value which is nil when the read is successful. If the class or the field is not found, checked-read-java-field returns nil and a condition specifying the error (java-field-error or java-class-error). Note that it may still signal other errors, for example if full-field-name does not look like a proper field name.

set-java-field sets the field to the value. value must be of an acceptable type (see Types and conversion between Lisp and Java) and the field must not be final, otherwise it signals java-field-setting-error.

check-java-field checks whether the field exists and matches the value of static-p, and returns a boolean result accordingly.

java-field-class-name-for-setting checks whether the field exists and matches the value of static-p and whether it is not final, and if it is returns the class name of the field. It returns nil otherwise. java-field-class-name-for-setting is useful for checking whether set-java-field can be used on a a field, and whether a value is suitable to be stored in his field, by using jobject-of-class-p.

Notes

It is also possible to access fields using accessors defined by define-field-accessor and setup-field-accessor.

See also

java-field-error
java-class-error
java-field-setting-error
define-field-accessor
setup-field-accessor
Java interface


LispWorks User Guide and Reference Manual - 20 Sep 2017

NextPrevUpTopContentsIndex