final class

Vaclav Pech vaclav.pech na seznam.cz
Úterý Říjen 14 08:18:17 CEST 2008


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




Další informace o konferenci Konference