Я хочу динамически аннотировать класс, чтобы сделать его как можно более универсальным:
public class Test<T> { @XmlAttribute(name = dynamicvalue) T[] data; public Test(String dynamicvalue) { } }
Есть ли способ достичь чего-то подобного?
TA
Нет. Аннотации являются статической информацией уровня класса, и на них не могут влиять значения полей экземпляра (нет, на них также не могут влиять значения статических полей).
Вы можете создавать новые классы во время выполнения, загружая новый байт-код, поэтому в теории это должно быть возможно (помните, аннотации связаны с классом, а не объектом). И вы можете использовать такой API, как Java Assist , чтобы помочь создать их. Есть пакет аннотаций , на который вы можете посмотреть.
Это будет нелегко.