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 0f8d706733322a4d2b214ed086153deff74e3a65..38e87261dc0fd5b58336e4b5427ca64dae140480 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/ClassUtils.java @@ -215,13 +215,12 @@ public final class ClassUtils return classes; } - @SuppressWarnings("unchecked") private final static <T> Constructor<T> getConstructor(final Class<?> clazz, final Class<?>[] classes) throws NoSuchMethodException { - final Constructor<T>[] constructors = clazz.getConstructors(); - Constructor<T> returned = null; - for (final Constructor<T> constructor : constructors) + final Constructor<?>[] constructors = clazz.getConstructors(); + Constructor<?> returned = null; + for (final Constructor<?> constructor : constructors) { final Class<?>[] parameterTypes = constructor.getParameterTypes(); final int len = parameterTypes.length; @@ -241,7 +240,13 @@ public final class ClassUtils returned = constructor; } } - return returned; + return toGenericType(returned); + } + + @SuppressWarnings("unchecked") + private static <T> Constructor<T> toGenericType(Constructor<?> returned) + { + return (Constructor<T>) returned; } @SuppressWarnings("unchecked")