static TreeSet numbersOfMethodArguments(O o, S method, O... _) { boolPar noVarArgs; Class c; bool mustBeStatic = false; if (o instanceof Class) { c = (Class) o; mustBeStatic = true; } else c = o.getClass(); new TreeSet numbers; while (c != null) { for (Method m : c.getDeclaredMethods()) { if (!m.getName().equals(method)) continue; if (mustBeStatic && !methodIsStatic(m)) continue; if (noVarArgs && m.isVarArgs()) continue; numbers.add(l(m.getParameterTypes())); } c = c.getSuperclass(); } ret numbers; }