public ResolvedObjectType( Class<?> erased, TypeBindings bindings, ResolvedType superClass, ResolvedType[] interfaces) { super(erased, bindings); /* 19-Aug-2014, tatu: bit unclean, but has to do for now. * Problem is, there is no common super-type, nor can we yet * force or coerce recursive types. Rather, they may only get * resolved only slightly after construction. So... need to * keep a reference. */ if (superClass != null) { if (!(superClass instanceof ResolvedObjectType) && !(superClass instanceof ResolvedRecursiveType)) { throw new IllegalArgumentException( "Unexpected parent type for " + erased.getName() + ": " + superClass.getClass().getName()); } } _superClass = superClass; _superInterfaces = (interfaces == null) ? NO_TYPES : interfaces; _modifiers = erased.getModifiers(); }