I was trying to implement something like enum by myself. While i was trying to iterate my constant objects i came across using reflection and i stumbled upon java.lang.reflect.Field . So here is my scenario. I have an entity class for holding a pair of String constants
public class ConstantEntity {
    private String constantName;
    private String constantDesc;
    ConstantEntity(String name, String desc) {
        this.constantName = name;
        this.constantDesc = desc;
    }
    public String constantName() {
        return this.constantName;
    }
    public String constantDesc() {
        return this.constantDesc;
    }
}
And I have a interface where i create the constants using the entity
public interface MyConstantsPool { 
    public static final ConstantEntity CONSTANT_ONE = new ConstantEntity("bla1", "11");
    public static final ConstantEntity CONSTANT_TWO = new ConstantEntity("bla2", "12");
    public static final ConstantEntity CONSTANT_THREE  = new ConstantEntity("bla3", "13");
}
And i am trying to consume and iterate through these constants using
import java.lang.reflect.Field;
public class ConsumeConstants {
    public static void main(String args[]) {
        Field[] fields = MyConstantsPool.class.getDeclaredFields();
        for (int i = 0; i < fields.length; i++) {
            Object myConstant = fields[i];
            ConstantEntity typeSafeEnum = (ConstantEntity) myConstant ;
            System.out.println(" The name: "
                    + ((ConstantEntity) typeSafeEnum).constantName());
            System.out.println(" The description: "
                    + ((ConstantEntity) typeSafeEnum).constantDesc());
        }
    }
}
I went through the documentation, but i couldn't grasp the idea behind Field. Am I completely wrong in the understanding of using reflection? When do we use Field? And what is the proper way to iterate through all the Object constants in the interface?
NOTE: I am using java 1.4; So i have to use basic java features to implement this.
 
     
     
     
     
    