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

Odpovedet emailem