public T newInstance(final Object... arguments) { if (Helper.isReifiable(this)) { try { final Type<?>[] argumentTypes; if (ArrayUtilities.isNullOrEmpty(arguments)) { argumentTypes = EmptyArrayCache.fromElementType(Type.class); } else { argumentTypes = new Type<?>[arguments.length]; } for (int i = 0, n = arguments.length; i < n; i++) { final Object argument = arguments[i]; argumentTypes[i] = argument != null ? getType(argument) : Type.NullType; } final ConstructorInfo constructor = getConstructor(argumentTypes); if (constructor != null) { return (T) constructor.invoke(arguments); } throw Error.couldNotResolveMatchingConstructor(); } catch (final Throwable t) { throw Error.typeInstantiationFailed(this, t); } } throw Error.typeCannotBeInstantiated(this); }
public T newInstance(final Object... arguments) { if (Helper.isReifiable(this)) { try { final Type<?>[] argumentTypes; if (ArrayUtilities.isNullOrEmpty(arguments)) { argumentTypes = EmptyArrayCache.fromElementType(Type.class); } else { argumentTypes = new Type<?>[arguments.length]; } for (int i = 0, n = arguments.length; i < n; i++) { final Object argument = arguments[i]; argumentTypes[i] = argument != null ? getType(argument) : Type.NullType; } final ConstructorInfo constructor = getConstructor(argumentTypes); if (constructor != null) { return (T) constructor.invoke(arguments); } throw Error.couldNotResolveMatchingConstructor(); } catch (Throwable t) { throw Error.typeInstantiationFailed(this, t); } } throw Error.typeCannotBeInstantiated(this); }
public T newInstance(final Object... arguments) { if (Helper.isReifiable(this)) { try { final Type<?>[] argumentTypes; if (ArrayUtilities.isNullOrEmpty(arguments)) { argumentTypes = EmptyArrayCache.fromElementType(Type.class); } else { argumentTypes = new Type<?>[arguments.length]; } for (int i = 0, n = arguments.length; i < n; i++) { final Object argument = arguments[i]; argumentTypes[i] = argument != null ? getType(argument) : Type.NullType; } final ConstructorInfo constructor = getConstructor(argumentTypes); if (constructor != null) { return (T) constructor.invoke(arguments); } throw Error.couldNotResolveMatchingConstructor(); } catch (Throwable t) { throw Error.typeInstantiationFailed(this, t); } } throw Error.typeCannotBeInstantiated(this); }