/** * Find an array of parameter {@link Type}s that matches the given compatible parameters. */ public static Class<?>[] findMatchingParameterTypes(List<Class<?>[]> parameterTypesList, Object[] args) { if (parameterTypesList.size() == 1) { return parameterTypesList.get(0); } // 获取参数类型 Class<?>[] parameterTypes; if (args == null || args.length == 0) { parameterTypes = new Class[0]; } else { parameterTypes = new Class[args.length]; for (int i = 0; i < args.length; i++) { if (args[i] != null) { parameterTypes[i] = args[i].getClass(); } } } Class<?>[] bestMatch = null; for (Class<?>[] pTypes : parameterTypesList) { if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch, parameterTypes) < 0) { bestMatch = pTypes; } } } return bestMatch; }
/** * Find an array of parameter {@link Type}s that matches the given compatible parameters. */ public static Class<?>[] findMatchingParameterTypes(List<Class<?>[]> parameterTypesList, Object[] args) { if (parameterTypesList.size() == 1) { return parameterTypesList.get(0); } // 获取参数类型 Class<?>[] parameterTypes; if (args == null || args.length == 0) { parameterTypes = new Class[0]; } else { parameterTypes = new Class[args.length]; for (int i = 0; i < args.length; i++) { if (args[i] != null) { parameterTypes[i] = args[i].getClass(); } } } Class<?>[] bestMatch = null; for (Class<?>[] pTypes : parameterTypesList) { if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch, parameterTypes) < 0) { bestMatch = pTypes; } } } return bestMatch; }
if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch.getFirst(), parameterTypes) < 0) { bestMatch = pair;
if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch.getFirst(), parameterTypes) < 0) { bestMatch = pair;
/** * Find an array of parameter {@link Type}s that matches the given compatible parameters. */ public static Class<?>[] findMatchingParameterTypes(List<Class<?>[]> parameterTypesList, Object[] args) { if (parameterTypesList.size() == 1) { return parameterTypesList.get(0); } // 获取参数类型 Class<?>[] parameterTypes; if (args == null || args.length == 0) { parameterTypes = new Class[0]; } else { parameterTypes = new Class[args.length]; for (int i = 0; i < args.length; i++) { if (args[i] != null) { parameterTypes[i] = args[i].getClass(); } } } Class<?>[] bestMatch = null; for (Class<?>[] pTypes : parameterTypesList) { if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch, parameterTypes) < 0) { bestMatch = pTypes; } } } return bestMatch; }
/** * Find an array of parameter {@link Type}s that matches the given compatible parameters. */ public static Class<?>[] findMatchingParameterTypes(List<Class<?>[]> parameterTypesList, Object[] args) { if (parameterTypesList.size() == 1) { return parameterTypesList.get(0); } // 获取参数类型 Class<?>[] parameterTypes; if (args == null || args.length == 0) { parameterTypes = new Class[0]; } else { parameterTypes = new Class[args.length]; for (int i = 0; i < args.length; i++) { if (args[i] != null) { parameterTypes[i] = args[i].getClass(); } } } Class<?>[] bestMatch = null; for (Class<?>[] pTypes : parameterTypesList) { if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch, parameterTypes) < 0) { bestMatch = pTypes; } } } return bestMatch; }
if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch.getFirst(), parameterTypes) < 0) { bestMatch = pair;
if (isAssignable(parameterTypes, pTypes, true)) { if (bestMatch == null || compareParameterTypes(pTypes, bestMatch.getFirst(), parameterTypes) < 0) { bestMatch = pair;