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";
}
}