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

  • Drizzt

    nagyúr

    válasz venic #10842 üzenetére

    Ez szerintem egy elég nehezen érthető része a javanak. De a lényeg. Van a Komparator osztályod. Ezen az osztályon belül van egy inner classod, a KutyaRend. Ilyenkor a kutyarend osztály mivel nem static, ezért a példánya csak egy adott objektumpéldányon belül hozható létre. A static method nem példányhoz, hanem osztályhoz tartozik, így annak nincsen példánya, tehát nincsen benne KutyaRend létrehozási lehetőség sem. Legkönnyebben ezt itt úgy tudod megoldani, ha a Kutyarend osztályt statická teszed:
    static class Kutyarend ...

    De ettől sokkal szebb, ha nem ágyazod be az osztályba semmilyen módon, hanem külön osztályba teszed. Sőt, ha ez a kutyák természetes rendezése, akkor elég a Kutyákat implements Comaparble<Kutyák> módon megadni, s akkor benne a compareTo-t implementálni.

    Még egyszerűbb, ha használod a Java 8-as Comparators.comparing-et, így:
    Collections.sort(KutyaLista, Comparators.comparing(Kutyak::getKor));

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

Hirdetés