sbool objectDirectlyReferencesOtherObject(O a, O b) { if (o == null) false; if (a instanceof O[]) ret contains((O[]) a, b); for (Field f : nonStaticNonPrimitiveFieldObjects(o)) if (f.get(a) == b) true; false; }