.jfield
returns the value of the specified field on an object.
.jfield(o, sig = NULL, name, true.class = is.null(sig), convert = TRUE)
`.jfield<-`(o, name, value)
.jfield
: contents of the field, .jfield<-
: modified object.
Class name or object (Java reference) whose field is to be accessed. Static fields are supported both by specifying the class name or using an instance.
signature (JNI type) of the field. If set to NULL
rJava attempts to determine the signature using reflection. For
efficiency it is recommended to specify the signature, because
the reflection lookup is quite expensive.
name of the field to access
by default the class of the resulting object matches
the signature of the field. Setting this flag to TRUE
causes
.jfield
to use true class name of the resulting object
instead. (this flag has no effect on scalar fields)
when set to TRUE
all references are converted to
native types (where possible). Otherwise Java references are
returned directly.
value to assign into the field. The field signature is
determined from the value in the same way that parameter signatures
are determined in .jcall
- be sure to cast the value
as necessary, no automatic conversion is done.
The detection of a field signature in .jfield
using reflection
is considerably expensive (more than 3 additional method calls have to
be performed), therefore it is recommended for time-critical code to
specify the field signature beforehand.
NOTE: The sequence of arguments in .jfield
has been changed
since rJava 0.5 to be more consistent and match the sequence in
.jcall
. Also .jsimplify
is no longer needed as primitive
types are obtained directly.
.jcall
if (FALSE) {
.jfield("java/lang/Boolean",, "TYPE")
}
Run the code above in your browser using DataLab