FieldsMain.java
package serialization;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class FieldsMain {
public static void main(String[] args) throws Exception {
SubClass subClass=new SubClass();
Field[] ownFields=SubClass.class.getDeclaredFields();
for(Field f: ownFields) {
try {
String name=f.getName();
Object val=f.get(subClass);
int modifier=f.getModifiers();
if ( (modifier & Modifier.STATIC)==Modifier.STATIC) {
System.out.print("static: ");
}
System.out.println(name+" => "+val);
} catch (Exception e) {
}
}
System.out.println("\n");
Class superClass=SubClass.class.getSuperclass();
Field[] superFields=superClass.getDeclaredFields();
for(Field f: superFields) {
try {
String name=f.getName();
Object val=f.get(subClass);
int modifier=f.getModifiers();
if ( (modifier & Modifier.STATIC)==Modifier.STATIC) {
System.out.print("static: ");
}
System.out.println(name+" => "+val);
} catch (Exception e) {
}
}
}
}
class SuperClass {
public static String superStatic="static field in superclass";
public int publicInt=1;
protected int protectedInt=2;
private int privateInt=3;
}
class SubClass extends SuperClass {
public String publicString="public";
public static String staticString="static String";
protected String protectedString="protected";
private String privateString="private";
}