protected Method findEvalMethod(Class<?> clazz) {
        /*
         * Note 1:
         * Some Java instrumentation tools (e.g. JaCoCo) insert code into
         * classes at runtime. This means that the static eval() method *could*
         * not be the first method of our runtime generated classes anymore.
         *
         * Note 2:
         * We can't use clazz.getDeclaredMethod(name, classes), as the argument
         * types of the eval() method could be normalized (see createSource()).
         */
        for (Method method : clazz.getDeclaredMethods()) {
            if ("eval".equals(method.getName())) {
                return method;
            }
        }

        throw new IllegalArgumentException("Couldn't find eval method!");
    }
Create a new Evaluator instance

@param <T>
           projection type
@param source
           expression in Java source code form
@param projection
           type of the source expression
@param names
           names of the arguments
@param types
           types of the arguments
@param constants
@return
querydsl-codegen-utils/src/main/java/com/querydsl/codegen/utils/AbstractEvaluatorFactory.java