मैं सार वर्गों के एक नंबर प्रत्येक superclassing तीन या चार ठोस वाले और फार्म की:जावा - इंटरफ़ेस से अधिक Collection.Sort ऑब्जेक्ट्स
public abstract class TypeOfMapObject extends IrrelevantClass implements Serializable, MapObject, Comparable<MapObject>
{
//irrelevant stuff
@Override
public int compareTo(MapObject m)
{
//specific algorithm for natural ordering
}
}
मेरी कोड में कहीं और मैं एक ArrayList<MapObject>
(है जो आबादी वाले किया जा रहा है ठीक है, मैंने इसे चेक किया है) tempMapObjectsArray
कहा जाता है मैं Collections.sort(tempMapObjectsArray)
का उपयोग करके सॉर्ट करना चाहता हूं (या, मैं इसे ArrayList
सॉर्ट करना चाहता हूं और ऐसा लगता है कि Collections.sort()
ऐसा करने का सबसे अच्छा तरीका है। इसका सॉर्ट करने का विशिष्ट तरीका महत्वपूर्ण नहीं है) ।
यह संकलन नहीं और संदेश (Netbeans में) दे रही है:
no suitable method found for sort(java.util.ArrayList<Model.MapObject>)
method java.util.Collections.<T>sort(java.util.List<T>,java.util.Comparator<? super T>) is not applicable
(cannot instantiate from arguments because actual and formal argument lists differ in length)
method java.util.Collections.<T>sort(java.util.List<T>) is not applicable
(inferred type does not conform to declared bound(s)
inferred: Model.MapObject
bound(s): java.lang.Comparable<? super Model.MapObject>)
ऐसा लगता है कि मैं TypeOfMapObject
कक्षा में सामान्य गलत परिभाषित करने रहा हूँ, लेकिन यह पहली बार मैं वास्तव में जेनरिक का इस्तेमाल किया है और यह है मंच पर पहुंचे जहां मैं यादृच्छिक रूप से चीजों को कम या ज्यादा कोशिश कर रहा हूं। मैं tutorial के माध्यम से पढ़ रहा हूं लेकिन अब तक यह गलत नहीं है कि मैं "गलत" कर रहा हूं।
संपादित करें: - यदि ऐसा है तो मैं सार श्रेणियां होती हैं TypeofMapObject1
, TypeOfMapObject2
आदि, तो मैं का एक उपवर्ग के लिए 1 के एक उपवर्ग तुलना करने में सक्षम होने की जरूरत है विभिन्न सार वर्गों के उपवर्गों में से प्रत्येक के लिए एक दूसरे के बराबर होने की जरूरत है वर्ग के साथ 2.
जब आप कहते हैं कि "यह फेंक रहा है ..." तो आपका मतलब है कि उपरोक्त स्निपेट संकलित करता है और आपको रनटाइम में अपवाद मिलता है? –
नहीं, अस्पष्ट होने के लिए खेद है। यह एक संकलन समय त्रुटि है। अस्पष्ट होने के लिए – MrB