Sagen, ich habe diese beiden Arraylisten:Passing unbekannt Arraytyp Methode
ArrayList<Book> book = new ArrayList<>();
ArrayList<Journal> journal = new ArrayList<>();
Book
und Journal
zwei verschiedene Klassen sind.
Beide Book
und Journal
Objekte haben eine getYear()
Methode. Ich möchte eine Methode erstellen, die einen unbekannten ArrayList-Typ übergibt und ein übergebenes Jahr mit einem Objekt in der Liste vergleicht. Der folgende Code ist in Haupt:
public static void fooBar(int year, ArrayList<?> list)
{
if(list.get(0).getYear() == year) // does not work!
{
}
}
Wenn eine unbekannte Art in die Methode übergeben wird, kann ich nicht dieses Objekt Methoden (getYear()
) verwenden kann. Wie kann ich dies tun, ohne zwei Methoden zu machen, die dasselbe tun (eine für Book
und eine für Journal
)?
Haben 'Book' und' Journal' eine Oberklasse oder Schnittstelle, die 'getYear()' definiert? – JonK
Meine Methodensignatur war falsch, ich habe die Frage bearbeitet. – MortalMan
Was @JonK gefragt ... Wenn es nicht ist, sollten Sie einen machen und das würde Ihr Problem lösen – 3kings