Zdravim,

mam jeden problemek ohldedne parametrizace objektu. Predstavme si
nasledujici situaci klasickeho hiearchickeho visitor patternu:

public interface HVisitor<E extends HVisitable> {
        
        boolean visitEnter(E node); // going into a branch

        boolean visitLeave(E node); // coming out

        boolean visit(E node);
        
}

public interface HVisitable {
        boolean accept(HVisitor visitor);
}

Rozhrani HVisitor je parametrizovano, aby programator pouhou deklaraci
typu E mohl implementovat primo metody pracujici s danym typem a
nemusel by pretypovavat. Problem je u rozhrani HVisitable, kde me
prekladac u metody accept varuje, ze by mela byt parametrizovana. No
to da rozum, ovsem ja nemohu prijit na to, jak ji parametrizovat.
Ackoli je kod funkcni, ta varovani mi vrtaji hlavou. Potreboval bych
dat programatorovi moznost specifikovat visitable typ parametrem, ale
vznika tam "cyklus", protoze HVisitor ve sve deklaraci pouziva
HVisitable.

Mam takovy pocit, ze v reseni budou hrat hlavni roli parametricke zoliky :-)

Diky za nakopnuti

-- 
Lukas Zapletal
http://lukas.zapletalovi.com

Odpovedet emailem