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

  • axioma

    veterán

    Van egy szamomra nem ismert oku jelenseg, bocs kicsit hosszu.
    A feladat: volt egy 2 adott tipusu objektumot kombinalo osztaly, most ugyanez kene altalanosan, tobb elemre.
    Az objectumok tipusabol ami lenyeges:
    public interface SpecInterface<K extends Serializable & Comparable<? super K>>
    extends DoublePanel<K, String>
    ahol:
    public interface DoublePanel<R extends Serializable,C extends Serializable>

    Ezen kivul kene hasznalni a kombinalashoz mindket iranybol egy-egy fuggvenyt:
    A SpecInterface-bol: Optional<SubType> getMyList()
    A DoublePanel oldalrol meg egy Utils osztalyon keresztul:
    public static <R extends Serializable, C extends Serializable>
    DoublePanel<R, C> mergeColumns(DoublePanel<R, C> left,
    DoublePanel<R, C> right)
    Ami az eddig kodban volt:
    SpecInterface<K> f1=...
    SpecInterface<K> f2=...
    es ezutan siman ment a ketfajta meghivas:
    ...=f1.getMyList()
    ...=DoublePanelUtils.mergeColumns(f1, f2)
    Most viszont az elemeket praktikus okokbol Stream-bol vennem es hasznalnam ezeket a kombinalashoz szukseges lepeseket. Az elso nyilvanvaloan csak akkor megy vegig, ha a tipusa Stream<SpecInterface<K>> fobjs, viszont ekkor a ...=fobjs.reduce((f1, f2) -> DoublePanelUtils.mergeColumns(f1, f2)).get();
    sornal azt mondja, hogy nem tudja R,C, es K erteket meghatarozni.
    Ellenben ha beszurom hogy
    Stream<DoublePanel<K, String>> fobjs2 = fobjs.map(f -> f);
    akkor siman lefordul az
    ...=fobjs2.reduce((f1, f2) -> DoublePanelUtils.mergeColumns(f1, f2)).get();
    Mukodik, de randa, es jogosan nem szeretnek code review-n, de azt se tudom hogyan kene rakeresni az okra es megoldasra. El tudna valaki legalabb iranyitani hogy merre keressek?

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

Hirdetés