Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Gyuri16
    senior tag

    <R> Stream<R> map(Fucktion<? super T,? extends R> mapper)

    ilyen esetben nem sérül a clean code elmélete?
    Előző példánál maradva e -> e.getValue0()
    miért
    ? super T
    az első type pataméter és miért
    ? extends R
    a második?

    vagy kár ezen filózni, elég "bután", rutinból használni ezeket a fucktional interface-ket és lambdákat?

    Ha nem akarsz rajta gondolkodni, akkor eleg megjegyezni hogy "Producer extends Consumer super" - PECS.

    mapper fuggveny elso parametere a bemenet, ez consumer. A masodik az eredmeny ez a producer.

    Ha erdekel bovebben, akkor lehet itt kezdeni: [link]
    Igaz collectionokrol van szo, de a lenyeg ugyanaz.

    map fuggvenynel maradva, vegyunk egy konkret mapper implentaciot.
    mapper fuggveny parametere egy valtozo. Azt akarod, hogy a valtozo el tudjon tarolni egy T tipusu objektumot. Milyen lehet a valtozo tipusa? Nyilvan lehet T. Lehet-e T-tol leszarmazott osztaly? Nem, mert akkor nem tudna egy T tipusu objektumot tarolni (pl. Integer valtozoba nem lehet Object-et tarolni). Lehet-e T elodje? Igen, altalanosabb tipusu valtozoba lehet leszarmazott osztalyt kuldeni. (ismet: Object-be lehet Integert). Ezert super.

    Nezzuk a mapper fuggveny eredmenyet. Itt azt szeretned, ha egy R tipusu valtozoba el lehetne menteni.
    R eredmeny = mapper(bemenet);
    Milyen osztalyokra igaz ez? R lehet. R elodje nem lehet (Integerbe Object-et). R-tol leszarmazott lehet. Ezert extends.

    Ha eloszor foglalkozol ezzel, kicsit zavaros lehet. Ajanlom, hogy probald ki egy egyszeru A->B->C hierarchian Collectionokkel (ami a linkben van).

    mod: amig irtam, nyilvan megeloztek :) most mar itthagyom, hatha segit a magyar verzio.

  • disy68
    aktív tag

    <R> Stream<R> map(Fucktion<? super T,? extends R> mapper)

    ilyen esetben nem sérül a clean code elmélete?
    Előző példánál maradva e -> e.getValue0()
    miért
    ? super T
    az első type pataméter és miért
    ? extends R
    a második?

    vagy kár ezen filózni, elég "bután", rutinból használni ezeket a fucktional interface-ket és lambdákat?

    "ilyen esetben nem sérül a clean code elmélete?"
    szerinted mi sérül?

    "miért (...)"
    Producer Extends Consumer Super
    illetve

Új hozzászólás Aktív témák