jodd-core/src/main/java/jodd/util/ClassUtil.java
public static Method[] getSupportedMethods(final Class clazz, final Class limit) {
		final ArrayList<Method> supportedMethods = new ArrayList<>();
		for (Class c = clazz; c != limit && c!= null; c = c.getSuperclass()) {
			final Method[] methods = c.getDeclaredMethods();
			for (final Method method : methods) {
				boolean found = false;
				for (final Method supportedMethod : supportedMethods) {
					if (compareSignatures(method, supportedMethod)) {
						found = true;
						break;
					}
				}
				if (!found) {
					supportedMethods.add(method);
				}
			}
		}
		return supportedMethods.toArray(new Method[0]);
	}
public static Method[] getSupportedMethods(final Class clazz, final Class limit) {
		final ArrayList<Method> supportedMethods = new ArrayList<>();
		for (Class c = clazz; c != limit && c!= null; c = c.getSuperclass()) {
			final Method[] methods = c.getDeclaredMethods();
			for (final Method method : methods) {
				boolean found = false;
				for (final Method supportedMethod : supportedMethods) {
					if (compareSignatures(method, supportedMethod)) {
						found = true;
						break;
					}
				}
				if (!found) {
					supportedMethods.add(method);
				}
			}
		}
		return supportedMethods.toArray(new Method[0]);
	}
Returns a <code>Method</code> array of the methods to which instances of the specified
respond except for those methods defined in the class specified by limit
or any of its superclasses. Note that limit is usually used to eliminate
them methods defined by <code>java.lang.Object</code>. If limit is <code>null</code> then all
methods are returned.