code: public static boolean isInner(final Type type) {
          if (type instanceof ParameterizedType) {
              return ((ParameterizedType) type).getOwnerType() != null;
          }
          final Class<?> actual = GenericsUtils.resolveClassIgnoringVariables(type);
          // interface is always static and can't use outer generics
          return !actual.isInterface() && actual.isMemberClass() && !Modifier.isStatic(actual.getModifiers());
      }
docs: <pre>{@code class Owner<T> {
  class Inner {
  T field; // parent generic reference
  }
  }}</pre>.
  
  @param type class to check
  @return true when type is inner (requires outer class instance for creation), false otherwise