jetbrick-commons/src/main/java/jetbrick/reflect/ExecutableUtils.java
public static <T extends Executable> T getExecutable(List<T> executables, String name, Class<?>... parameterTypes) {
        for (T info : executables) {
            if (name == null || info.getName().equals(name)) {
                Class<?>[] types = info.getParameterTypes();
                if (parameterTypes.length == types.length) {
                    boolean match = true;
                    for (int i = 0; i < parameterTypes.length; i++) {
                        if (types[i] != parameterTypes[i]) {
                            match = false;
                            break;
                        }
                    }
                    if (match) {
                        return info;
                    }
                }
            }
        }
        return null;
    }
public static <T extends Executable> T getExecutable(List<T> executables, String name, Class<?>... parameterTypes) {
        for (T info : executables) {
            if (name == null || info.getName().equals(name)) {
                Class<?>[] types = info.getParameterTypes();
                if (parameterTypes.length == types.length) {
                    boolean match = true;
                    for (int i = 0; i < parameterTypes.length; i++) {
                        if (types[i] != parameterTypes[i]) {
                            match = false;
                            break;
                        }
                    }
                    if (match) {
                        return info;
                    }
                }
            }
        }
        return null;
    }
public static < T extends Executable > T getExecutable ( List < T > executables , String name , Class < ? > ... parameterTypes ) { for ( T info : executables ) { if ( name == null || info . getName ( ) . equals ( name ) ) { Class < ? > [ ] types = info . getParameterTypes ( ) ; if ( parameterTypes . length == types . length ) { boolean match = true ; for ( int i = 0 ; i < parameterTypes . length ; i ++ ) { if ( types [ i ] != parameterTypes [ i ] ) { match = false ; break ; } } if ( match ) { return info ; } } } } return null ; }
查找完全匹配的方法或者构造函数.

@param executables - 带查找的 list
@param name - 方法名称(如果查找构造函数，那么name可以是null)
@param parameterTypes － 方法或者构造函数参数(完全匹配)
@return 找到的方法或者构造函数，找不到返回 null.
查找完全匹配的方法或者构造函数 .