Take lze pouzit AspectJ. Napr. tento aspect prida metodu print() do tridy
Test:

public aspect AddMethodAspect {

    public void Test.print() {
        System.out.println("hi!");
    }
}


Z.T.
-- 
Zdenek Tronicek
FIT CTU in Prague


Ondra Medek napsal(a):
> Lze pouzit ASM nebo Javassist, ale to je IMHO overkill pro vas ucel.
>
> 2010/4/1 Ondra Medek <[email protected]>:
>> Pouzijte wrapper, jak pisesete, ale nic prepisovat nemusite:
>>
>> class Clovek2 {
>>  private Clovek original;
>>
>>  public Clovek2(Clovek original) {
>>    this.original = original;
>>  }
>>
>>  public Clovek getOriginal() { return this.original;}
>>
>>  //  pridane property
>>  public isAdult() { return this.original.getAge() > 18; }
>>   ...
>> }
>>
>> a ve view volejte clovek.getOriginal().getAge() nebo clovek.isAdult();
>>
>>
>> 2010/4/1 Petr Prikryl <[email protected]>:
>>> Dobry den,
>>> resim takovy zajimavy problem jak pridat metodu a pripadne zmenit
>>> chovani metody ve view, pricemz jsem vazany tim ze puvodni objekt je
>>> entita a nemuzu (nechci) ji pridavat metody a parametry ktere se v
>>> bussines z ni daji vyderivovat.
>>>
>>> Napriklad:
>>> Clovek{
>>> private Integer id;
>>> private Date narozen;
>>> //a dalsich 50 atributu (prehanim)
>>> }
>>>
>>> ClovekProxy extends Clovek{
>>> public Boolean dospely(){
>>>    return narozen>xy; //cca
>>> }
>>>
>>> pricemz potreboval bych neco jako:
>>>
>>> public List<ClovekProxy> getLidi{
>>>  return (List<CLovekProxy>) userBean.findAll();
>>> }
>>>
>>> nechce se mi to ale delat pres
>>> iteraci pres kolekci a new ClovekProxy(Clovek c);
>>>
>>> ClovekProxy extends Clovek{
>>> public Boolean dospely(){
>>>    return narozen>xy; //cca
>>> /////////////
>>> //zkopirovat vsechny metody a upravit v nich
>>> //kod na
>>> getNarozen(){
>>> return c.getNarozen;
>>> }
>>> ///////////
>>> }
>>>
>>> protoze se mi to zda ze to je hrozne neefektivni (z hlediska
>>> programovani ne vykonu), a takove skrabani levou nohou za pravym uchem.
>>>
>>> libilo by se mi neco jako
>>> public ClovekProxy(Clovek c){
>>> this=c;
>>> }
>>>
>>> Pripadne existuje na toto nejaky framework, pripadne bude neco
>>> podobneho
>>> v java 1.7? Nebo se mam smmirit ze to je limit javy? Protoze mam pocit
>>> ze ve smalltalku by to slo vyresit (nejsem smalltalkista)
>>>
>>> Dekuji
>>> PP
>>
>
>
>
> --
> Ondra Medek
>

Odpovedet emailem