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  :-)

Odpovedet emailem