@SuppressWarnings("unchecked")
    private static Method locateMethod(ClassReflectionIndex classInfo, String name, String[] paramTypes, boolean isStatic, boolean isPublic, boolean strict) {
    """
	Find method info
	
	@param classInfo  the class info
	@param name       the method name
	@param paramTypes the parameter types
	@param isStatic   must the method be static
	@param isPublic   must the method be public
	@param strict     is strict about method modifiers
	@return the method info or null if not found
    """
        Collection<Method> methods = classInfo.getMethods();
        if (methods != null) {
            for (Method method : methods) {
                if (name.equals(method.getName()) &&
                        equals(paramTypes, method.getParameterTypes()) &&
                        (strict == false || (Modifier.isStatic(method.getModifiers()) == isStatic && Modifier.isPublic(method.getModifiers()) == isPublic)))
                    return method;
            }
        }
        return null;
    }
@SuppressWarnings("unchecked")
    private static Method locateMethod(ClassReflectionIndex classInfo, String name, String[] paramTypes, boolean isStatic, boolean isPublic, boolean strict) {
        Collection<Method> methods = classInfo.getMethods();
        if (methods != null) {
            for (Method method : methods) {
                if (name.equals(method.getName()) &&
                        equals(paramTypes, method.getParameterTypes()) &&
                        (strict == false || (Modifier.isStatic(method.getModifiers()) == isStatic && Modifier.isPublic(method.getModifiers()) == isPublic)))
                    return method;
            }
        }
        return null;
    }
@ SuppressWarnings ( "unchecked" ) private static Method locateMethod ( ClassReflectionIndex classInfo , String name , String [ ] paramTypes , boolean isStatic , boolean isPublic , boolean strict ) { Collection < Method > methods = classInfo . getMethods ( ) ; if ( methods != null ) { for ( Method method : methods ) { if ( name . equals ( method . getName ( ) ) && equals ( paramTypes , method . getParameterTypes ( ) ) && ( strict == false || ( Modifier . isStatic ( method . getModifiers ( ) ) == isStatic && Modifier . isPublic ( method . getModifiers ( ) ) == isPublic ) ) ) return method ; } } return null ; }
Find method info

@param classInfo  the class info
@param name       the method name
@param paramTypes the parameter types
@param isStatic   must the method be static
@param isPublic   must the method be public
@param strict     is strict about method modifiers
@return the method info or null if not found
Find method info