Java - dynamiczne tworzenie podklasy
Chciałbym programowo utworzyć podklasę. Myślę, że mam kilka opcji - Javassist, CGLib, BCEL lub ASM.
Przypadek użycia jest taki, że elementy wewnętrzne jednej aplikacji są zorientowane na klasę, a rozszerzenia są oparte na klasie. Dlatego nie mogę mieć pojedynczej klasy jako bazy dla wielu rozszerzeń sterowanych zewnętrznymi skryptami.
Teraz - jak bym to zrobił? Znalazłem przykłady z przechwytywaniem wywołań metod, dostępu do pola, inicjalizacji itp. Ale nic o podklasowaniu.
Chciałbym skończyć z klasą, która:
ma imię, które chcę.jest (w najlepszym razie) podklasą danej klasykopiuje konstruktor (y) z klasy nadrzędnej (lub wywołańsuper(...)
)w końcu chciałbym dać mu kilka adnotacji.Wiem, że to możliwe, ponieważ różne dynamiczne integracje języków, jakGroovyClassLoader
, mogę to zrobić.