code: private static int[] lookupClasses() {
  		Class<?> annotationMemberArrayClazz;
  		try {
  			annotationFactoryClazz = Class.forName("org.apache.harmony.lang.annotation.AnnotationFactory");
  			annotationMemberClazz = Class.forName("org.apache.harmony.lang.annotation.AnnotationMember");
  			annotationMemberArrayClazz = Class.forName("[Lorg.apache.harmony.lang.annotation.AnnotationMember;");
  		} catch (ClassNotFoundException e) {
  			return null;
  		}
  
  		Field fieldField;
  		try {
  			elementsField = annotationFactoryClazz.getDeclaredField("elements");
  			elementsField.setAccessible(true);
  
  			nameField = annotationMemberClazz.getDeclaredField("name");
  			nameField.setAccessible(true);
  			valueField = annotationMemberClazz.getDeclaredField("value");
  			valueField.setAccessible(true);
  
  			fieldField = DatabaseFieldSample.class.getDeclaredField("field");
  		} catch (SecurityException e) {
  			return null;
  		} catch (NoSuchFieldException e) {
  			return null;
  		}
  
  		DatabaseField databaseField = fieldField.getAnnotation(DatabaseField.class);
  		InvocationHandler proxy = Proxy.getInvocationHandler(databaseField);
  		if (proxy.getClass() != annotationFactoryClazz) {
  			return null;
  		}
  
  		try {
  			// this should be an array of AnnotationMember objects
  			Object elements = elementsField.get(proxy);
  			if (elements == null || elements.getClass() != annotationMemberArrayClazz) {
  				return null;
  			}
  
  			Object[] elementArray = (Object[]) elements;
  			int[] configNums = new int[elementArray.length];
  
  			// build our array of field-numbers that match the AnnotationMember array
  			for (int i = 0; i < elementArray.length; i++) {
  				String name = (String) nameField.get(elementArray[i]);
  				configNums[i] = configFieldNameToNum(name);
  			}
  			return configNums;
  		} catch (IllegalAccessException e) {
  			return null;
  		}
  	}
docs: This does all of the class reflection fu to find our classes, find the order of field names, and construct our
  array of ConfigField entries the correspond to the AnnotationMember array.