java- ~reklasifikace?
Ondra Medek
xmedeko na gmail.com
Čtvrtek Duben 1 12:15:24 CEST 2010
Lze pouzit ASM nebo Javassist, ale to je IMHO overkill pro vas ucel.
2010/4/1 Ondra Medek <xmedeko na gmail.com>:
> 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 <peter.prikryl na gmail.com>:
>> 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
Další informace o konferenci Konference