diff --git a/jnius/jnius_export_class.pxi b/jnius/jnius_export_class.pxi index 6fcfe07..9d4dd1f 100644 --- a/jnius/jnius_export_class.pxi +++ b/jnius/jnius_export_class.pxi @@ -128,7 +128,15 @@ class MetaJavaClass(MetaJavaBase): if jcs is not None: obj = jcs.j_cls - if NULL != obj: + if NULL == obj: + if isinstance(value, PythonJavaClass): + for interface in getattr(value, '__javainterfaces__', []): + obj = j_env[0].FindClass(j_env, interface) + if obj == NULL: + j_env[0].ExceptionClear(j_env) + elif 0 != j_env[0].IsAssignableFrom(j_env, obj, me.j_cls): + return True + else: if 0 != j_env[0].IsAssignableFrom(j_env, obj, me.j_cls): return True