gyonyoru genericek

elkezdtem irni a diplomamunkam (mar ideje volt), es szuksegem van futasideju injectionre, mint egy IoC frameworkben.
a legegyszerubb, es legelterjedtebb az, amikor egy interfeszre injektalnak, melynek kezenfekvo modja, hogy mikor elindul
a kontener, osszebindeljuk az interfeszt az o egyik konkret implementaciojaval. (lehet sokfelekepp, az en kodom se csak
ennyit fog tudni, majd kesobb meg irok rola talan).

szoval szerettem volna valami olyasmit, hogy


    private final ConcurrentHashMap<Class<?>, Class<?>> bindings;

naigenam, de mi az a sok wildcard type ott? hat, valahogy megkene kotnom, hogy nyilvan az interfeszhez csak az o implementacioja tartozzon...

itt az en megoldasom, nekem nagyon tetszik igy reggel :-)


    public <T> void addBinding(Class<T> interfaceClazz, Class<? extends T> implementation) {
        bindings.putIfAbsent(interfaceClazz, implementation);
    }

ezutan mar nyugodtan mondhatjuk azt, hogy addBinding(InterfaceClass.class, InterfaceImpl.class);

igazabol semmi extra nincs benne, viszont generikus tipusmegszoritasokkal annyira keveset foglalkozunk oran, hogy sosem
art hallani rola, hogy igen, ilyen is letezik.

Hozzászólások