diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java index 3c2f95eaf694556a15f9ed19127201c6c6a23cc2..5b7af65bb89c8a8669347321f31a77b4a2243aaa 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java @@ -141,7 +141,7 @@ public final class ClassUtils + "' can not be instanciated as it is an interface."; assert superClazz.isAssignableFrom(clazz) : "Class '" + clazz.getName() + "' does not implements/extends '" + superClazz.getName() + "'."; - if (arguments.length == 0) + if (arguments == null || arguments.length == 0) { return cast(clazz.newInstance()); } @@ -177,21 +177,21 @@ public final class ClassUtils * * @param superClazz Super class <code>className</code> has to be implemented or extended. * @param className Fully-qualified class name. - * @param argumentsOrNull Optional constructor arguments. If <code>(Object[]) null</code> then + * @param arguments Optional constructor arguments. If <code>(Object[]) null</code> then * the empty constructor will be used. Note that <code>(Object) null</code> is not * interpreted as <code>null</code> arguments but rather as * <code>new Object[]{null}</code>. * @return an instance of type <code>interface</code>. */ public final static <T> T create(final Class<T> superClazz, final String className, - final Object... argumentsOrNull) + final Object... arguments) { assert superClazz != null : "Missing super class"; assert className != null : "Missing class name"; try { - return create(superClazz, Class.forName(className), argumentsOrNull); + return create(superClazz, Class.forName(className), arguments); } catch (final ClassNotFoundException ex) { throw CheckedExceptionTunnel.wrapIfNecessary(ex);