Field/method operator for Java objects
$ operator for
jobjRef Java object references provides convenience access to object attributes and calling Java methods.
rJava provies two levels of API: low-level JNI-API in the form of
.jcall function and high-level reflection API based on the
$ operator. The former is very fast, but inflexible. The latter is a convenient way to use Java-like programming at the cost of performance. The reflection API is build around the
$ operator on
jobjRef-class objects that allows to access Java attributes and call object methods.
$.jobjRef returns either the value of the attribute or calls a method, depending on which name matches first.
$<-.jobjRef assigns a value to the corresponding Java attribute.
This is just a convenience API. Internally all calls are mapped into
.jcall calls, therefore the calling conventions and returning objects use the smae rules. For time-critical Java calls
.jcall should be used directly.
NOTE: This interface is still very experimental! Some type conversions may not work or it may fail to find the method you want. You may need to use
.jfields and possibly apply
.jcast in such cases. If it is a general problem, please report such issues whith a small reproducible example.
v <- .jnew("java/lang/String","Hello World!") v$length() v$indexOf("World")