obter as informações da anotação em tempo de execução

Gostaria de saber se há alguma maneira de obter as informações de anotação de uma classe em tempo de execução? Desde que eu quero obter as propriedades que anotaram sepcifily.

Exemplo:

class TestMain {
    @Field(
            store = Store.NO)
    private String  name;
    private String  password;
    @Field(
            store = Store.YES)
    private int     age;

    //..........getter and setter
}

As anotações vêm da pesquisa de hibernação e agora o que eu quero é obter qual propriedade do "TestMain" éanotado como um 'campo' (no exemplo, eles são[nome idade]) e que é 'armazenado (armazenar = armazenar.yes)' (no exemplo, eles são [era]) em tempo de execução.

Alguma ideia?

Atualizar:

public class FieldUtil {
public static List<String> getAllFieldsByClass(Class<?> clazz) {
    Field[] fields = clazz.getDeclaredFields();
    ArrayList<String> fieldList = new ArrayList<String>();
    ArrayList<String> storedList=new ArrayList<String>();
    String tmp;
    for (int i = 0; i < fields.length; i++) {
        Field fi = fields[i];
        tmp = fi.getName();
        if (tmp.equalsIgnoreCase("serialVersionUID"))
            continue;
        if (fi.isAnnotationPresent(org.hibernate.search.annotations.Field.class)) {
            //it is a "field",add it to list.
            fieldList.add(tmp);

            //make sure if it is stored also
            Annotation[] ans = fi.getAnnotations();
            for (Annotation an : ans) {
                //here,how to get the detail annotation information
                //I print the value of an,it is something like this:
                //@org.hibernate.search.annotations.Field(termVector=NO, index=UN_TOKENIZED, store=NO, name=, [email protected](value=1.0), [email protected](impl=void, definition=), [email protected](impl=void, params=[]))

                //how to get the parameter value of this an? using the string method?split?
            }
        }

    }
    return fieldList;
}

}

questionAnswers(2)

yourAnswerToTheQuestion