लागू करता है निर्दिष्ट करने के लिए एक तरीका है मुझे लगता है मैं एक निर्माता है कि एक वस्तु दो को लागू करने के लिए पूछ बनाना चाहते हैं, कोड इस तरह करने के लिए jGraphTजावा में, वहाँ है कि एक तर्क दो इंटरफेस
/*
interface DirectedGraph<V,E> { ...}
interface WeightedGraph<V,E> { ...}
*/
public class SteinerTreeCalc {
public SteinerTreeCalc(< ??? implements DirectedGraph<V,E>, WeightedGraph<V,E> > graph) {
......
}
}
का उपयोग कर परीक्षा कर रहा हूँ इंटरफेस।
अद्यतन:
मेरा लक्ष्य में, वहाँ पहले से ही चुना जाता है लेकिन जो लोग साथ आने के लिए वर्टेक्स और किनारों (वी और ई) के लिए कक्षाएं, बहुत बहुत शुक्रिया:
public class SteinerTreeCalc <V, E, T extends DirectedGraph<V, E> & WeightedGraph<V, E>>
{
....
}
मुझे लगता है आप इंटरफेस है कि दोनों एक 'DirectedGraph' और एक' WeightedGraph' नामकरण नहीं के लिए एक अच्छा कारण है, ताकि आप अनुबंध के सभी बिट्स कि 'SteinerTreeCalc' के उपयोगकर्ता के लिए आवश्यक है प्राप्त कर सकते हैं एक जगह में समर्थन? –
एक अच्छा है! JgraphT ऐसा इंटरफ़ेस प्रदान नहीं करता है जो एक निर्देशित ग्राफ और एक भारित ग्राफ दोनों है, और उपयोगकर्ता मेरे कस्टम इंटरफ़ेस/कक्षाओं का उपयोग नहीं करना चाहता है। मैं वास्तव में समझ में नहीं आता कि उन्होंने यह इंटरफ़ेस क्यों प्रदान नहीं किया। – jwinandy