public static Method getOverrideMethod(final Method superclassMethod, final Class<?> subclass) { final Class<?> superclass = superclassMethod.getDeclaringClass(); Class<?> currentClass = subclass; if (!superclass.isAssignableFrom(subclass)) { throw new RuntimeException("Class[" + subclass + "] is not superclass" + " of class[" + subclass + "]"); } while (!currentClass.equals(superclass)) { try { final Method m = currentClass.getDeclaredMethod(superclassMethod.getName(), superclassMethod.getParameterTypes()); if (matchInheritance(m, superclassMethod)) { return m; } } catch (final Exception ex) { } currentClass = currentClass.getSuperclass(); } return superclassMethod; } }
public static Field getHideField(final Field superclassField, final Class<?> subclass) { final Class<?> superclass = superclassField.getDeclaringClass(); Class<?> currentClass = subclass; if (!superclass.isAssignableFrom(subclass)) { throw new RuntimeException("Class[" + subclass + "] is not superclass" + " of class[" + subclass + "]"); } while (!currentClass.equals(superclass)) { try { final Field m = currentClass.getDeclaredField(superclassField.getName()); if (matchInheritance(m, superclassField)) { return m; } } catch (final Exception ex) { } currentClass = currentClass.getSuperclass(); } return superclassField; }
public static Method getMatch(final Set<Method> methods, final Method maybeSuperclassMethod, final boolean matchInheritance) { for (final Method m : methods) { if (!matchInheritance) { if (matchModifier(m, maybeSuperclassMethod) && matchSignature(m, maybeSuperclassMethod)) { return m; } } else { if (matchInheritance(m, maybeSuperclassMethod)) { return m; } } } return null; }
final Field declaredField = proxyClass.getDeclaredField(field.getName()); if (!Reflections.matchInheritance(declaredField, field)) { // Hide try { field.set(reference, injection);
public static Field getHideField(final Field superclassField, final Class<?> subclass) { final Class<?> superclass = superclassField.getDeclaringClass(); Class<?> currentClass = subclass; if (!superclass.isAssignableFrom(subclass)) { throw new RuntimeException("Class[" + subclass + "] is not superclass" + " of class[" + subclass + "]"); } while (!currentClass.equals(superclass)) { try { final Field m = currentClass.getDeclaredField(superclassField.getName()); if (matchInheritance(m, superclassField)) { return m; } } catch (final Exception ex) { } currentClass = currentClass.getSuperclass(); } return superclassField; }
public static Method getOverrideMethod(final Method superclassMethod, final Class<?> subclass) { final Class<?> superclass = superclassMethod.getDeclaringClass(); Class<?> currentClass = subclass; if (!superclass.isAssignableFrom(subclass)) { throw new RuntimeException("Class[" + subclass + "] is not superclass" + " of class[" + subclass + "]"); } while (!currentClass.equals(superclass)) { try { final Method m = currentClass.getDeclaredMethod(superclassMethod.getName(), superclassMethod.getParameterTypes()); if (matchInheritance(m, superclassMethod)) { return m; } } catch (final Exception ex) { } currentClass = currentClass.getSuperclass(); } return superclassMethod; } }
public static Method getMatch(final Set<Method> methods, final Method maybeSuperclassMethod, final boolean matchInheritance) { for (final Method m : methods) { if (!matchInheritance) { if (matchModifier(m, maybeSuperclassMethod) && matchSignature(m, maybeSuperclassMethod)) { return m; } } else { if (matchInheritance(m, maybeSuperclassMethod)) { return m; } } } return null; }
final Field declaredField = proxyClass.getDeclaredField(field.getName()); if (!Reflections.matchInheritance(declaredField, field)) { // Hide try { field.set(reference, injection);