Динамическая аннотация класса - PullRequest
9 голосов
/ 26 марта 2010

Я хочу динамически аннотировать класс, чтобы сделать его как можно более универсальным:

public class Test<T> {

    @XmlAttribute(name = dynamicvalue)
    T[] data;

    public Test(String dynamicvalue) {
    }  
}

Есть ли способ достичь чего-то подобного?

TA

Ответы [ 2 ]

4 голосов
/ 26 марта 2010

Нет. Аннотации являются статической информацией уровня класса, и на них не могут влиять значения полей экземпляра (нет, на них также не могут влиять значения статических полей).

2 голосов
/ 26 марта 2010

Вы можете создавать новые классы во время выполнения, загружая новый байт-код, поэтому в теории это должно быть возможно (помните, аннотации связаны с классом, а не объектом). И вы можете использовать такой API, как Java Assist , чтобы помочь создать их. Есть пакет аннотаций , на который вы можете посмотреть.

Это будет нелегко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...