Mega Code Archive

 
Categories / Java Tutorial / Reflection
 

Recursively get all fields for a hierarchical class tree

import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /**  *  * @author Aniruddha Dutta Chowdhury [a.d.chowdhury@gmail.com]<br>  *         http://www.google.com/profiles/a.d.chowdhury<br>  *         http://in.linkedin.com/in/adchowdhury   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@    @@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@    @@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@    @@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@    @    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@    @@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@     @     @@@@@@@@@@    @@     @@@@@@@@    @@@@@    @     @@@@@    @@@@@@    @@@@@@@@@     @@    @@@@@@@@@     @@    @@@@@    @@     @@@@@@@@@@@@       @@@@@@@ @@@@@@@    @@@    @@@@@@@@@@    @        @@@@@@    @@@@@         @@@@@@    @@@@@@    @@@@@@@        @    @@@@@@@        @    @@@@@    @        @@@@@@@@           @@@@@ @@@@@@@    @@@    @@@@@@@@@@             @@@@@@    @@@@@         @@@@@@    @@@@@@    @@@@@@              @@@@@@              @@@@@             @@@@@@@@            @@@@ @@@@@@     @@@     @@@@@@@@@      @@@     @@@@@    @@@@@     @@@@@@@@@@    @@@@@@    @@@@@@     @@@      @@@@@@     @@@      @@@@@      @@@     @@@@@@    @@@@     @@@@ @@@@@@    @@@@@    @@@@@@@@@     @@@@@    @@@@@    @@@@@     @@@@@@@@@@    @@@@@@    @@@@@     @@@@@     @@@@@     @@@@@     @@@@@     @@@@@    @@@@@@@  @@@@@@    @@@@ @@@@@@    @@@@@    @@@@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@    @@@@@@@@@@@@@@@    @@@@ @@@@@     @@@@@@    @@@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@    @@@@@@@@@@@@@      @@@@ @@@@@               @@@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@    @@@@@@@@@          @@@@ @@@@@               @@@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@    @@@@@@             @@@@ @@@@                 @@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@    @@@@@@      @@@    @@@@ @@@@                 @@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@@    @@@@@    @@@@@@    @@@@@    @@@@@@    @@@@ @@@@    @@@@@@@@@    @@@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@    @@@@@     @@@@@@    @@@@@     @@@@@@    @@@@@     @@@@@    @@@@@@    @@@@@    @@@@@@    @@@@ @@@    @@@@@@@@@@@    @@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@     @@@      @@@@@@     @@@      @@@@@@     @@@      @@@@@    @@@@@@    @@@@@     @@@@     @@@@ @@@    @@@@@@@@@@@    @@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@@             @@@@@@@             @@@@@@@             @@@@@    @@@@@@    @@@@@              @@@@ @@@    @@@@@@@@@@@    @@@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@@        @    @@@@@@@        @    @@@@@@@        @    @@@@@    @@@@@@    @@@@@@         @   @@@@ @@    @@@@@@@@@@@@@    @@@@@    @@@@@@    @@@@@    @@@@@    @@@@@@@@@@@@@@     @@    @@@@@@@@@     @@    @@@@@@@@@     @@    @@@@@    @@@@@@    @@@@@@@@     @@@    @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    *  */ public class testReflection {     public static void main(String[] args) {         try {             C c = new C();             Class klass = c.getClass();             Field[] fields = getAllFields(klass);             for (Field field : fields) {                 System.out.println(field.getName());             }         } catch (Throwable a_th) {             a_th.printStackTrace();         }     }     public static Field[] getAllFields(Class klass) {         List<Field> fields = new ArrayList<Field>();         fields.addAll(Arrays.asList(klass.getDeclaredFields()));         if (klass.getSuperclass() != null) {             fields.addAll(Arrays.asList(getAllFields(klass.getSuperclass())));         }         return fields.toArray(new Field[] {});     } } class A {     public String    nameA    = ""; } class B extends A {     public String    nameB    = "";     public String    nameB1    = "";     public String    nameB2    = ""; } class C extends B {     public String    nameC    = ""; }