2012-05-26 15 views
6

मैं एक विधि लिख रहा हूं जो इसके एकमात्र पैरामीटर को तुलनात्मक वस्तुओं की एक सूची के रूप में लेता है और कुछ भी वापस नहीं करता है। मैं वाक्य रचना के रूप में अनिश्चित है कि यह होना चाहिए हूँ:जावा सिंटेक्स

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

मुझे लगता है कि यह गलत है क्योंकि तुलनीय के लिए एक प्रकार के रूप <Object> है, जो सूची एक पूर्णांक और वस्तुओं के रूप में एक बूलियन ले जा सकते हैं मतलब होगा की, लेकिन मुझे वह नहीं चाहिए। मैं चाहता हूं कि सूची केवल एक ही प्रकार ले, लेकिन उस प्रकार को तुलनात्मक इंटरफेस को कार्यान्वित करना है। मैं इसे कैसे प्राप्त करूं?

+0

क्यों आप 'Integer' और' Boolean' प्रकार लेने के लिए जब विधि सभी वस्तुओं है कि लागू 'Comparable' वैसे भी के लिए काम करना चाहिए नहीं चाहेगा? –

+3

@ जेक: इसे 'इंटेगर' की सूची और 'बूलियन' की एक सूची के साथ काम करना चाहिए, लेकिन एक सूची के साथ नहीं, जिसमें एक ही समय में 'इंटेगर और' बूलियन दोनों शामिल हैं। –

+0

@ निकलास आह, समझ गया, मैंने सवाल को गलत तरीके से पढ़ा। धन्यवाद! –

उत्तर

10

शायद इसे सामान्य बनाओ?

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

उन लोगों के लिए जावा ट्यूटोरियल से लिंक करें जो उत्सुक हैं [https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html ](https://docs.oracle.com/javase/tutorial/java /generics/boundedTypeParams.html) – Pegasaurus