static Set allFieldsAbove(O o, C baseClass) { new TreeSet fields; Class _c = _getClass(o); while (_c != null && _c != baseClass) { for (Field f : _c.getDeclaredFields()) fields.add(f.getName()); _c = _c.getSuperclass(); } return fields; }