Díky všem za reakce. Ještě na vysvětlenou - potřebuju překrýt metodu v portlet třídě, která je definována jako final. Autoři třídy si samozřejmě nepřáli, aby do ni někdo zasahoval, nicméně nemysleli na všechno. A protože ten portlet je vcelku rozsáhlý a dekompilace není vždy úplně 100%, trochu se tomu bráním, stejně jako vytvoření úplně novýho portletu. Z důvodu portálovýho kontejneru také nechci použít rozšíření ala Groovy, AspectJ, ...
Luba A protože je celkem On Tue, Oct 14, 2008 at 09:31, Oto Buchta <[EMAIL PROTECTED]> wrote: > No neda mi to, abych si trosku neprisadil ;-) > a) pri pouziti dynamickych vlastnosti Javy by to jit mohlo (napr zminene > Groovy) > b) kdyz mas .class, neni nic jednodussiho, nez JAD, perl -e "s/final / /g" > file.java; javac file.java > c) napis si vlastni implementaci a podhod ji misto te stavajici > d) ono to final tam z nejakeho duvodu asi bude, ze? Takze pokud presne nevidis > do kodu, V ZADNEM PRIPADE bych to nedelal, protoze muzes nadelat vic skody nez > uzitku. > e) otazka vubec zni: proc? Predpokladam, ze volas nejakou metodu, ktere > potrebujes predhodit tridu B, ona zere jenom tridu A, takze chces logicky > B extends A. opravdu se zamysli, jestli je to to prave orechove. > > Oto 'tapik' Buchta > > On Mon, Oct 13, 2008 at 11:20:14PM +0200, 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 :-) >
