.jcast returns a Java object reference cast to another Java class.

.jcast(obj, new.class = "java/lang/Object", check = FALSE, convert.array = FALSE)



a Java object reference


fully qualified class name in JNI notation (e.g. "java/lang/String").


logical. If TRUE, it is checked that the object effectively is an instance of the new class. See %instanceof%. Using FALSE (the default) for this argument, rJava does not perform type check and this will cause an error on the first use if the cast is illegal.


logical. If TRUE and the object is an array, it is converted into a jarrayRef reference.


Returns a Java object reference (jobjRef) to the object

obj, changing the object class.


This function is necessary if a argument of .jcall or .jnew is defined as the superclass of the object to be passed (see .jcall). The original object is not modified.

The default values for the arguments check and convert.array is FALSE in order to guarantee backwards compatibility, but it is recommended to set the arguments to TRUE

See also


if (FALSE) {
v <- .jnew("java/util/Vector")
.jcall("java/lang/System","I","identityHashCode",.jcast(v, "java/lang/Object"))