2012-05-26 4 views
6

Ich schreibe eine Methode, die als einzigen Parameter eine Liste von vergleichbaren Objekten nimmt und nichts zurückgibt. Ich bin unsicher in Bezug auf die Syntax, die es haben sollte:Java-Syntax für eine Liste von vergleichbaren Objekten

public static void methodName(List<Comparable<Object>> list) { 
    // Do some stuff 
} 

Ich denke, das für vergleichbar, weil der <Object> als eine Art falsch ist, die die Liste würde bedeuten, können einen Integer und einen Booleschen als Objekte nehmen, aber Ich will das nicht. Ich möchte, dass die Liste nur einen Typ annimmt, aber dieser Typ muss die Vergleichsschnittstelle implementieren. Wie erreiche ich das?

+0

Warum sollten Sie 'Integer'- und' Boolean'-Typen nicht verwenden, wenn die Methode für alle Objekte funktionieren soll, die 'Comparable' trotzdem implementieren? –

+3

@Jake: Es sollte mit einer Liste von 'Integer' und mit einer Liste von' Boolean' funktionieren, aber nicht mit einer Liste, die gleichzeitig 'Integer's und 'Boolean's enthält. –

+0

@ Niklas Ach, verstanden, ich habe die Frage falsch gelesen. Vielen Dank! –

Antwort

10

Vielleicht machen Sie es generisch?

public static <E extends Comparable<E>> void methodName(List<E> list) ... 
+0

Link zu den Java-Tutorials für diejenigen, die neugierig sind [https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html](https://docs.oracle.com/javase/tutorial/java /generics/boundedTypeParams.html) – Pegasaurus