code: def is_instance_of(obj, class_or_intf_name):
      
      class_or_intf_name = class_or_intf_name.replace("/", ".")
      classname = get_classname(obj)
      # array? retrieve component type and check that
      if is_array(obj):
          jarray = JavaArray(jobject=obj)
          classname = jarray.component_type()
      result = javabridge.static_call(
          "Lweka/core/InheritanceUtils;", "isSubclass",
          "(Ljava/lang/String;Ljava/lang/String;)Z",
          class_or_intf_name, classname)
      if result:
          return True
      return javabridge.static_call(
          "Lweka/core/InheritanceUtils;", "hasInterface",
          "(Ljava/lang/String;Ljava/lang/String;)Z",
          class_or_intf_name, classname)
docs: Checks whether the Java object implements the specified interface or is a subclass of the superclass.
  
      :param obj: the Java object to check
      :type obj: JB_Object
      :param class_or_intf_name: the superclass or interface to check, dot notation or with forward slashes
      :type class_or_intf_name: str
      :return: true if either implements interface or subclass of superclass
      :rtype: bool