/** * Returns the unique annotation types for annotations on each method parameter, if any parameters have * annotations, else returns null. * * Note that it is always faster to call {@link #getParameterInfo()} and get the parameter information from the * returned list of {@link MethodParameterInfo} objects, since this method calls that to compile its results. * * @return The method parameter annotation types, as an array of Strings, or null if no parameter annotations * are present. */ public Class<?>[][] getParameterAnnotationTypes() { final String[][] paramAnnotationNames = getParameterAnnotationNames(); if (paramAnnotationNames == null) { return null; } final Class<?>[][] parameterAnnotationTypes = new Class<?>[paramAnnotationNames.length][]; for (int i = 0; i < paramAnnotationNames.length; i++) { parameterAnnotationTypes[i] = new Class<?>[paramAnnotationNames[i].length]; for (int j = 0; j < paramAnnotationNames[i].length; j++) { parameterAnnotationTypes[i][j] = scanResult.classNameToClassRef(paramAnnotationNames[i][j]); } } return parameterAnnotationTypes; }