scope thisDollarOneFields. static Map #cache = newDangerousWeakHashMap(); static Field[] thisDollarOneFields(Class c) { synchronized(cache) { Field[] l = cache.get(c); if (l == null) cache.put(c, l = thisDollarOneFields_uncached(c)); ret l; } } static Field[] thisDollarOneFields_uncached(Class c) { new L fields; do { for (Field f : c.getDeclaredFields()) if (f.getName().startsWith("this$")) fields.add(makeAccessible(f)); c = c.getSuperclass(); } while (c != null); ret toArray(new Field[l(fields)], fields); } end scope