Porównywanie rozmiarów dwóch list o różnych typach

Odpowiedz Nowy wątek
2015-02-10 17:31
0

Witajcie!

Chciałbym napisać funkcję, która w parametrach przyjmuje dwie listy o różnych typach. Następnie zwraca ich rozmiary. Więc napisałem:

    public boolean compareSizes(List<Object> list1, List<Object> list2) {
        return list1.size() == list2.size();
    } 

Po utworzeniu następujących list:

    List<Product> list1 = new ArrayList<Product>();
    List<String> list2 = new ArrayList<String>();

I wywołaniu funkcji w następujący sposób:

compareSizes(list1,list2)

Otrzymuje błąd następującej treści:
The method compareSizes(List<object>, List<object>) in the type Log is not applicable for the arguments (List<string>, List<product>)

Jak to naprawić i czy to w ogóle jest dobre podejście? Przydałaby mi się taka ogólna funkcja, zamiast pisania 3-4 funkcji przeciążonych,

Pozdrawiam forumowiczów!

akurat w wypadku compareSizes to prościej pisać po prostu np. if(list1.size() == list2.size()) {... - karolinaa 2015-02-11 23:53

Pozostało 580 znaków

2015-02-10 17:39
0

Pewnie Product to jakaś Twoja własna klasa, która nie dziedziczy po Object.List<KlasaPochodna> nie rzutuje się do List<KlasaBazowa> automatycznie, więc albo

public boolean compareSizes(List<?> list1, List<?> list2)

albo

public boolean compareSizes(List list1, List list2) {
edytowany 2x, ostatnio: twonek, 2015-02-10 17:48
Ciężko o klasę JVMową która nie dziedziczy po Object... - airborn 2015-02-10 17:41
Prawda. Za długo nie tykałem tej Javy :P - twonek 2015-02-10 17:46
Myślałem, że w Javie wszystko jest obiektem, zburzyłeś mój światopogląd :D - soncrash 2015-02-10 17:48
Głupoty gadam, nie słuchaj się mnie ;) - twonek 2015-02-10 17:52
@soncrash, to niestety źle myślałeś. - some_ONE 2015-02-10 17:53
Dzięki wielkie za pomoc, nie wiedziałem o tych "dzikich kartach" pozdr. - soncrash 2015-02-10 17:58

Pozostało 580 znaków

2015-02-10 17:50
Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0