Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Получения всех методов, аннотацый и полей класса?


Автор: unkis 23.6.2009, 12:27
Существует к примеру такое Entity.


Код

@Entity
@Table(name = "tablname", schema = "shemaName")
public class A implements Serializable {

    private A_1Id id;
    private Kmtb_Lstfk_1 kmtb_Lstfk_1;
    private boolean grossklein;
    private String subquery;
    private BigDecimal esBreite;
    private Long esReihenfolge;

    public A() {
    }
    

    @EmbeddedId
    @AttributeOverrides({
            @AttributeOverride(name = "szenario", column = @Column(name = "SZENARIO", nullable = false, length = 40)),
            @AttributeOverride(name = "feld", column = @Column(name = "FELD", nullable = false, length = 40))})
    @NotNull
    public A_1Id getId() {
        return this.id;
    }

    public void setId(A_1Id id) {
        this.id = id;
    }
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "SZENARIO", nullable = false, insertable = false, updatable = false)
    @NotNull
    public Kmtb_Lstfk_1 getKmtb_Lstfk_1() {
        return this.kmtb_Lstfk_1;
    }

    public void setKmtb_Lstfk_1(Kmtb_Lstfk_1 kmtb_Lstfk_1) {
        this.kmtb_Lstfk_1 = kmtb_Lstfk_1;
    }


    @Column(name = "GROSSKLEIN", nullable = false, precision = 1, scale = 0)
    @NotNull
    public boolean isGrossklein() {
        return this.grossklein;
    }

    public void setGrossklein(boolean grossklein) {
        this.grossklein = grossklein;
    }

    @Column(name = "SUBQUERY", length = 2000)
    @Length(max = 2000)
    public String getSubquery() {
        return this.subquery;
    }

    public void setSubquery(String subquery) {
        this.subquery = subquery;
    }

       @Column(name = "ES_BREITE", precision = 5)
    public BigDecimal getEsBreite() {
        return this.esBreite;
    }

    public void setEsBreite(BigDecimal esBreite) {
        this.esBreite = esBreite;
    }

    @Column(name = "ES_REIHENFOLGE", precision = 10, scale = 0)
    public Long getEsReihenfolge() {
        return this.esReihenfolge;
    }

    public void setEsReihenfolge(Long esReihenfolge) {
        this.esReihenfolge = esReihenfolge;
    }

}



Нужно получить какие поля существует, какой тип у соответственного поля и какая аннотатион у этого поля?

Получить поля можно к примеру вот так

Код

    Field[] declaredFields = clazz.getDeclaredFields();


но как потом получить все гет-методы этого поля чтобы можно было получить анотацию для дальнейшего анализа?


Автор: goodday1941 23.6.2009, 16:56
ну что бы не напрягаясь (не роясь в API) найти все данные которые тебя интересуют, 
я бы на твоем месть запустил бы проект под дебагером и нашел бы все что тебя интересует

Добавлено через 1 минуту и 38 секунд
Цитата(unkis @  23.6.2009,  12:27 Найти цитируемый пост)
о как потом получить все гет-методы этого поля чтобы можно было получить анотацию для дальнейшего анализа?

а как связанны гет методы с аннотациями? на самом деле для того же JPA наличие геттеров/сеттеров вообще не обязательно smile

Автор: LSD 23.6.2009, 18:46
Цитата(unkis @  23.6.2009,  12:27 Найти цитируемый пост)
но как потом получить все гет-методы этого поля чтобы можно было получить анотацию для дальнейшего анализа?

Через соглашение об именах smile 


А вообще не совсем понятно, зачем тебе нужно получать get/set методы для поля? Тебе не все равно как оно там храниться? Может просто стоит найти все get/set методы и все?

P.S. http://commons.apache.org/beanutils/api/org/apache/commons/beanutils/BeanUtils.html дабы не писать свой велосипед.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)