(Method m, Object target)
| 80 | } |
| 81 | |
| 82 | private static Method toAccessibleSuperMethod(Method m, Object target) { |
| 83 | Method selected = m; |
| 84 | while(selected != null) { |
| 85 | if(canAccess(selected, target)) return selected; |
| 86 | selected = tryFindMethod(selected.getDeclaringClass().getSuperclass(), m); |
| 87 | } |
| 88 | |
| 89 | Collection<Class> interfaces = interfaces(m.getDeclaringClass()); |
| 90 | for(Class c : interfaces) { |
| 91 | selected = tryFindMethod(c, m); |
| 92 | if(selected != null) return selected; |
| 93 | } |
| 94 | return null; |
| 95 | } |
| 96 | |
| 97 | public static Object invokeInstanceMethod(Object target, String methodName, Object[] args) { |
| 98 | return invokeInstanceMethodOfClass(target, target.getClass(), methodName, args); |
no test coverage detected