code: protected String isSingleAbstractMethod(Class<?> target) {
          String methodName = null;
  
          Method[] methods = target.getMethods();
          for (int i = 0; i < methods.length; ++i) {
              int modifiers = methods[i].getModifiers();
              if (Modifier.isPublic(modifiers) && Modifier.isAbstract(modifiers)) {
                  if (methodName == null) {
                      methodName = methods[i].getName();
                  } else if (!methodName.equals(methods[i].getName())) {
                      return null;
                  }
              }
          }
  
          return methodName;
      }
docs: ----------------------------------------------------------------------