मैं एक अंतरफलक है कि एक तरीका है जिसके चीजें हैं जो लागू दोनों Comparator<Object>
और Action
, यानीप्रकार अनुमान वापसी प्रकार, वाइल्ड कार्ड, और चौराहे प्रकार
<T extends Comparator<Object> & Action> List<T> getThings();
यह की एक सूची प्रदान करेगा शामिल घोषित करने के लिए कोशिश कर रहा हूँ शामिल ठीक से संकलित करता है, लेकिन समस्या तब आती है जब मैं इस विधि को कॉल करने का प्रयास करता हूं।
incompatible types; no instance(s) of type variable(s) T exist so that
java.util.List<T> conforms to java.util.List<javax.swing.Action>
found : <T>java.util.List<T>
required: java.util.List<javax.swing.Action>
निम्नलिखित या तो काम नहीं करता है:
List<? extends Action> things = getThings();
List<? extends Comparator<Object>> things = getThings();
जब मैं मैं निम्नलिखित संकलन त्रुटि हो यह करने के लिए कोशिश
List<Action> things = getThings();
List<Comparator<Object>> things = getThings();
: मैं यह करने के लिए सक्षम होना चाहते हैं
इस प्रभाव को प्राप्त करने का एक और तरीका एक खाली इंटरफ़ेस बनाना है जो Comparator<Object>
और Action
दोनों को बढ़ाता है और इसे रिटर्न प्रकार के रूप में उपयोग करता है, यानी
public interface ComparatorAction extends Comparator<Object>, Action { }
List<ComparatorAction> getThings();
लेकिन मैं ऐसा नहीं करना चाहता हूं। जो कुछ मैं चाहता हूं उसे करने का एक तरीका बनना है, है ना? कोई विचार?
धन्यवाद!
पीएस मुझे इस पोस्ट के लिए एक अच्छा शीर्षक के साथ आने में मुश्किल हो रही है, इसलिए इसे बदलने में संकोच न करें।
यह वही है जो मुझे चाहिए, धन्यवाद! –