ParameterizedTypeImpl(@Nullable Type var1, Class<?> var2, Type[] var3) { Preconditions.checkNotNull(var2); Preconditions.checkArgument(var3.length == var2.getTypeParameters().length); Types.disallowPrimitiveType(var3, "type parameter"); this.ownerType = var1; this.rawType = var2; this.argumentsList = Types.JavaVersion.CURRENT.usedInGenericType(var3); }
TypeVariableImpl(D var1, String var2, Type[] var3) { Types.disallowPrimitiveType(var3, "bound for type variable"); this.genericDeclaration = (GenericDeclaration) Preconditions.checkNotNull(var1); this.name = (String) Preconditions.checkNotNull(var2); this.bounds = ImmutableList.copyOf((Object[]) var3); }
WildcardTypeImpl(Type[] var1, Type[] var2) { Types.disallowPrimitiveType(var1, "lower bound for wildcard"); Types.disallowPrimitiveType(var2, "upper bound for wildcard"); this.lowerBounds = Types.JavaVersion.CURRENT.usedInGenericType(var1); this.upperBounds = Types.JavaVersion.CURRENT.usedInGenericType(var2); }