Zdravím,
váš kód níž se vyhodnocuje už v době překladu, pokud však máte jméno
třídy ve Stringu, pracujete s ním až v době běhu. Java není dynamický
ale kompilovaný jazyk, proto jsou tam tyto dvě fáze a co je možné v
jedné nemusí být nutně možné v té druhé fázi. To co máte ve Stringu
totiž vůbec nemusí být název třídy, nebo to může být název třídy,
která příslušnou metodu vůbec neimplementuje atd.

Ve vašem případě bude asi nejjednodušší použít proxy –
java.lang.reflect.Proxy. Druhá možnost by byla vytvořit za běhu
příslušn bajtkód upravené třídy a podstrčit jej classloaderu, ale to
je podle mne zbytečně složité.  Pokud tedy opravdu potřebujete dělat
přesně to, co popisujete, a nemá váš původní problém nějaké jiné,
jednodušší a elegantnější, řešení.

Filip Jirsák

2008/6/19 Stöhr Miroslav RNDr. Ph.D. <[EMAIL PROTECTED]>:
> Vážení kolegové,
>
> mám následující problém: Parametr metody mi dodá _string_, který reprezentuje 
> classname. Od tohoto classname potřebuji vytvořit v metodě potomka, kterému 
> předefinuji jednu metodu, a vrátím jej.
>
> Problém je, jak pro class, ke kterému jsem dostal pouze jméno, vytvořit v 
> metodě potomka -- jde to vůbec?
>
> Příklad: Situace, kdy vím, jaký class mám předefinovat:
>
> public Object vytvorPotomka(){
>        Parent p = new Parent(){
>                public boolean myMethod(){
>                        return someDifferentLogic;
>                }
>        };
>        return p;
> }
>
> Problém je v tom, že "Parent" dostanu jako string ... jeho instanci vytvořím, 
> ale jak vytvořit jeho potomka s předefinovanou metodou?
>
>                     Mirek Stöhr
>
>



-- 
Filip Jirsák
[EMAIL PROTECTED]

Odpovedet emailem