| Refresh | Home EGTry.com

get values of all fields of an object and its superclass and up


AllFieldsMain.java

package serialization;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class AllFieldsMain {

	public static void main(String[] args) throws Exception {

		Class1 object=new Class1();
		showValue(Class1.class, object);
		
	}
	
	public static void showValue(Class thisClass, Object obj) throws Exception {
	   if (thisClass.getName().equals("java.lang.Object")) {
		   return;
	   }
	   Field[] fields=thisClass.getDeclaredFields();
	   for(Field f: fields) {
		   f.setAccessible(true);
		   String name=f.getName();
		   Object val=f.get(obj);
		   System.out.println(name+" => "+val);
	   }
	   showValue(thisClass.getSuperclass(), obj);
	}
	
	static class Class3 {
		private static String name="Class3";
		private int level=3;
		protected int[] seq={1,3,6,9};
	}
	
	static class Class2 extends Class3 {
		public static String superStatic="static field in superclass";
		public int publicInt=1;
		protected int protectedInt=2;
		private int privateInt=3;
	}

	static class Class1 extends Class2 {
		public String publicString="public";
		public static String staticString="static String";
		protected String protectedString="protected";
		private String privateString="private";
	}
	
}