$
operator for jobjRef
Java object references provides convenience access to object attributes and calling Java methods..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 .jcall
, consult .jmethods
, .jfields
and possibly apply .jcast
in such cases. If it is a general problem, please report such issues whith a small reproducible example.
.jcall
, .jnew
, jobjRef-class
v <- .jnew("java/lang/String","Hello World!")
v$length()
v$indexOf("World")
Run the code above in your browser using DataLab