static Map unsafe_allFieldOffsets(O o){ Class src = _getClass(o); new Map map; while (src != O.class) { for (Field f : src.getDeclaredFields()) { if ((f.getModifiers() & Modifier.STATIC) == 0) { long offset = theUnsafe().objectFieldOffset(f); map.put(f.getName(), offset); } } src = src.getSuperclass(); } ret orderMapByValue(map); }