मान लीजिए कि आप सरणी को सॉर्ट करने के लिए जावा में एक स्थिर फ़ंक्शन लिखते हैं, Arrays.sort()
की तरह। Arrays.sort()
के साथ समस्या यह है कि यह ऑब्जेक्ट की एक सरणी प्राप्त करता है, और ClassCastException
फेंकता है यदि उसके तत्व Comparable
लागू नहीं करते हैं।जावा में जेनिक्स और सॉर्टिंग
तो आप चाहते हैं कि आपका कार्य Comparable
के उप-प्रकार की एक सरणी के रूप में प्राप्त हो। ऐसा ही कुछ काम कर सकता था:
static <T extends Comparable> void sort(T[] array);
कि हस्ताक्षर के साथ समस्या यह है कि आप अभी भी पूर्णांकों और स्ट्रिंग्स उदाहरण के लिए साथ Comparables की एक सरणी पारित कर सकते हैं, जो एक RuntimeException
का कारण होता है।
तो, आप एक समारोह है कि केवल एक सरणी जिसका तत्वों तुलनीय को लागू करने और सभी एक ही प्रकार (जैसे पूर्णांक, स्ट्रिंग, आदि?)
हस्ताक्षर के साथ एक और समस्या यह है कि यह एक सामान्य बाध्य में कच्चे प्रकार का उपयोग कर रहा है। –