All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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