def cast(destclass, obj): cdef JavaClass jc cdef JavaClass jobj = obj from reflect import autoclass if isinstance(destclass, basestring): jc = autoclass(destclass)(noinstance=True) else: jc = destclass(noinstance=True) jc.instanciate_from(jobj.j_self) return jc def find_javaclass(bytes name): from .reflect import Class cdef JavaClass cls cdef jclass jc cdef JNIEnv *j_env = get_jnienv() name = name.replace('.', '/') jc = j_env[0].FindClass(j_env, name) if jc == NULL: raise JavaException('Class not found {0!r}'.format(name)) cls = Class(noinstance=True) cls.instanciate_from(create_local_ref(j_env, jc)) return cls