Method (String classname, String methodName, MethodDescriptor descriptor) { String targetClass = classname.replace('/', '.'); String methodSignature = buildMethodSignature(targetClass + '.' + methodName, descriptor); Method method; if (METHOD_CACHE.containsKey(methodSignature)) { method = METHOD_CACHE.get(methodSignature); } else { method = findMethodOnClasspath(targetClass, methodSignature); METHOD_CACHE.put(methodSignature, method); } return method; }