2012-11-15 3 views
5

मुझे यह संकलक त्रुटि FuzzyWuzzyContainer पर क्यों मिल रही है?एकाधिक सीमाओं के साथ टाइप पैरामीटर पर संकलन त्रुटि प्राप्त करना

बाउंड बेमेल: प्रकार FuzzyWuzzy प्रकार के घिरे पैरामीटर <T extends Fuzzy & Comparable<T>> के लिए एक वैध विकल्प नहीं है FuzzyContainer

FuzzyWuzzy वास्तव में दोनों इंटरफेस है कि घिरे सामान्य में परिभाषित कर रहे हैं को लागू करता है ।

public interface Fuzzy 
{ 
    boolean isFuzzy(); 
} 

public class FuzzyWuzzy implements Fuzzy, Comparable<Fuzzy> 
{ 
    public boolean isFuzzy() {return true;} 
    public int compare(Fuzzy o) {return 0;) 
} 

public abstract class FuzzyContainer<T extends Fuzzy & Comparable<T>> 
{ 
    : 
} 

public class FuzzyWuzzyContainer extends Fuzzycontainer<FuzzyWuzzy> // Error is here 
{ 
} 
+0

क्या आप चाहते हैं कि 'FuzzyWuzzy Fuzzy, तुलनात्मक 'लागू करता है? –

+0

दुर्भाग्य से, नहीं। – Robin

उत्तर

3

FuzzyContainer इस तरह की घोषणा का प्रयास करें:

public abstract class FuzzyContainer<T extends Fuzzy & Comparable<? super T>> 

यह FuzzyWuzzy औजार Comparable<Fuzzy> बजाय Comparable<FuzzyWuzzy> (आप भी, तो वह बदलाव कर सकता है The Cat pointed out के रूप में) के बाद से आवश्यक है।

+2

धन्यवाद। मेरे पास माथे पर एक कीबोर्ड छाप है जो कल इसे समझने की कोशिश कर रहा है जो अब पहन सकता है ;-) – Robin

4

समस्या FuzzyWuzzy implements Comparable<Fuzzy> है। FuzzyContainerT एस FuzzyContainer<T extends Fuzzy & Comparable<T>> दोनों में एक ही प्रकार के होने की अपेक्षा कर रहा है। FuzzyWuzzy लागू Fuzzy लेकिन यह Comparable<FuzzyWuzzy> लागू नहीं करता है।

प्रयास करें, FuzzyWuzzy implements Fuzzy, Comparable<FuzzyWuzzy>

+0

अच्छा जवाब, दुर्भाग्य से मेरे विशेष उपयोग मामले के लिए सही नहीं है। – Robin