Pokud by pro Vás připadalo v úvahu použít nějaký dynamický jazyk, jako
třeba Groovy :-) , mohl byste rozšířit finální třídu o nové metody či
property pomocí meta-programování. Záleží samozřejmě na konkrétních
omezeních Vašeho projektu.
MojeFinalniTrida.metaClass.novaMetoda = {parametr1, parametr2 -> teloMetody}
Potom už můžete v Groovy kódu metodu používat.
new MojeFinalniTrida().novaMetoda(1, 2)
Vašek
Luboš Svoboda wrote:
Zdravím,
potřeboval bych rozšířit třídu, která je definována jako final.
Samozřejmě vím, že to "normálně" nejde, ale nenašel by se nějaký
způsob jak to zařídit? Mám k dispozici pouze .class, napadlo mně
jestli by nešel nějak upravit bytecode, nebo něco podobného. Nemáte s
nečím podobnou zkušenost?
Díky Luba
PS: debatu proč rozšiřovat final třídy nechme stranou, mám proto dobrý
důvod :-)