code: private Class<?> resolveTargetType(final Class<?> listenerType, final Class<?> declaredTargetType) {
          Class<?> target = null;
          if (RequiresRecordConversion.class.isAssignableFrom(listenerType)) {
              target = GenericsResolver.resolve(listenerType)
                      .type(RequiresRecordConversion.class).generic("T");
  
              // if generic could not be resolved from listener instance, use method parameter declaration (last resort)
              if (Object.class.equals(target)) {
                  target = declaredTargetType;
              }
          }
          return target;
      }
docs: Resolve target conversion type either from listener instance or, if its not possible, from
  listener parameter declaration.
  
  @param listenerType       listener instance type
  @param declaredTargetType listener generic declared in method declaration
  @return target conversion type or null if conversion is not required