
com.github.jsr330.spi.config.builder.Constructors Maven / Gradle / Ivy
package com.github.jsr330.spi.config.builder;
import java.lang.reflect.Constructor;
public class Constructors {
@SuppressWarnings("unchecked")
public static Constructor defaultConstructor(Class type) {
for (Constructor> constructor : type.getDeclaredConstructors()) {
if (constructor.getParameterTypes().length == 0) {
return (Constructor) constructor;
}
}
return null;
}
@SuppressWarnings("unchecked")
public static Constructor constructor(Class type, Class>... arguments) {
Class>[] parameters;
boolean equals;
if (arguments == null || arguments.length == 0) {
return defaultConstructor(type);
}
for (Constructor> constructor : type.getDeclaredConstructors()) {
if ((parameters = constructor.getParameterTypes()).length == arguments.length) {
equals = true;
for (int i = 0; i < arguments.length; i++) {
if (!arguments[i].equals(parameters[i])) {
equals = false;
}
}
if (equals) {
return (Constructor) constructor;
}
}
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy