package funnymeets; import java.lang.reflect.Executable; import java.lang.reflect.Field; import java.lang.reflect.Member; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; public class MemberField { static List allFields = new ArrayList(); static List allMethods = new ArrayList(); static List manyFields = new ArrayList(); static List manyMembers = new ArrayList(); static String[] toTry = {"java.util.AbstractCollection", "java.util.AbstractList", "java.util.AbstractMap", "java.util.AbstractQueue", "java.util.AbstractSequentialList", "java.util.AbstractSet", "java.util.ArrayDeque", "java.util.ArrayList", "java.util.ArrayPrefixHelpers", "java.util.Arrays", "java.util.ArraysParallelSortHelpers", "java.util.Base64", "java.util.BitSet", "java.util.Calendar", "java.util.Collection", "java.util.Collections", "java.util.ComparableTimSort", "java.util.Comparator", "java.util.Comparators", "java.util.ConcurrentModificationException", "java.util.Currency", "java.util.Date", "java.util.Deque", "java.util.Dictionary", "java.util.DoubleSummaryStatistics", "java.util.DualPivotQuicksort", "java.util.DuplicateFormatFlagsException", "java.util.EmptyStackException", "java.util.EnumMap", "java.util.EnumSet", "java.util.Enumeration", "java.util.EventListener", "java.util.EventListenerProxy", "java.util.EventObject", "java.util.FormatFlagsConversionMismatchException", "java.util.Formattable", "java.util.FormattableFlags", "java.util.Formatter", "java.util.FormatterClosedException", "java.util.GregorianCalendar", "java.util.HashMap", "java.util.HashSet", "java.util.Hashtable", "java.util.IdentityHashMap", "java.util.IllegalFormatCodePointException", "java.util.IllegalFormatConversionException", "java.util.IllegalFormatException", "java.util.IllegalFormatFlagsException", "java.util.IllegalFormatPrecisionException", "java.util.IllegalFormatWidthException", "java.util.IllformedLocaleException", "java.util.InputMismatchException", "java.util.IntSummaryStatistics", "java.util.InvalidPropertiesFormatException", "java.util.Iterator", "java.util.JapaneseImperialCalendar", "java.util.JumboEnumSet", "java.util.LinkedHashMap", "java.util.LinkedHashSet", "java.util.LinkedList", "java.util.List", "java.util.ListIterator", "java.util.ListResourceBundle", "java.util.Locale", "java.util.LocaleISOData", "java.util.LongSummaryStatistics", "java.util.Map", "java.util.MissingFormatArgumentException", "java.util.MissingFormatWidthException", "java.util.MissingResourceException", "java.util.NavigableMap", "java.util.NavigableSet", "java.util.NoSuchElementException", "java.util.Objects", "java.util.Observable", "java.util.Observer", "java.util.Optional", "java.util.OptionalDouble", "java.util.OptionalInt", "java.util.OptionalLong", "java.util.PrimitiveIterator", "java.util.PriorityQueue", "java.util.Properties", "java.util.PropertyPermission", "java.util.PropertyResourceBundle", "java.util.Queue", "java.util.Random", "java.util.RandomAccess", "java.util.RegularEnumSet", "java.util.ResourceBundle", "java.util.Scanner", "java.util.ServiceConfigurationError", "java.util.ServiceLoader", "java.util.Set", "java.util.SimpleTimeZone", "java.util.SortedMap", "java.util.SortedSet", "java.util.Spliterator", "java.util.Spliterators", "java.util.SplittableRandom", "java.util.Stack", "java.util.StringJoiner", "java.util.StringTokenizer", "java.util.TimSort", "java.util.TimeZone", "java.util.Timer", "java.util.TimerTask", "java.util.TooManyListenersException", "java.util.TreeMap", "java.util.TreeSet", "java.util.Tripwire", "java.util.UUID", "java.util.UnknownFormatConversionException", "java.util.UnknownFormatFlagsException", "java.util.Vector", "java.util.WeakHashMap"}; public static final int P = 0x1244f6db; public static void main(String[] args) { int i = P; Member[] members = null; for (String s : toTry) { try { Class cl = Class.forName(s); Method[] ma = cl.getDeclaredMethods(); Field[]fa = cl.getDeclaredFields(); allFields.add(fa); allMethods.add(ma); } catch (Throwable ex) { ex.printStackTrace(); } for (Field[] fa : allFields) { i = update(i); members = m1(members, fa, i); } for (Executable[] ea : allMethods) { i = update(i); members = m2(members, ea, i); } } } static int update(int i) { return (i + i) ^ (i < 0 ? P : 0); } static Member[] m1(Member[] m, Field[] f, int i) { return i < 0 ? m : f; } static Member[] m2(Member[] m, Executable[] f, int i) { return i < 0 ? m : f; } }