implementiert Ich bin versucht, eine solche Art von Code zu tun, mit JGraphTIn Java gibt es eine Möglichkeit zu geben, dass ein Argument zwei Schnittstellen
/*
interface DirectedGraph<V,E> { ...}
interface WeightedGraph<V,E> { ...}
*/
public class SteinerTreeCalc {
public SteinerTreeCalc(< ??? implements DirectedGraph<V,E>, WeightedGraph<V,E> > graph) {
......
}
}
Ich möchte einen Konstruktor erstellen, die für ein Objekt stellen zwei Durchführungs Schnittstellen.
Update:
In meinem Ziel ist es bereits ausgewählte Schulklassen für Vertex und Kanten (V und E), aber dank Menschen viel zu, die kommen mit:
public class SteinerTreeCalc <V, E, T extends DirectedGraph<V, E> & WeightedGraph<V, E>>
{
....
}
Ich nehme an, Sie haben einen guten Grund, die Schnittstelle, die sowohl 'DirectedGraph' als auch' WeightedGraph' ist, nicht zu benennen, so dass Sie alle Teile des Vertrags erhalten können, die der Benutzer von 'SteinerTreeCalc' benötigt Unterstützung an einem Ort? –
Ein guter! JgraphT bietet keine solche Schnittstelle, die sowohl ein DirectedGraph als auch ein WeightedGraph ist, und der Benutzer möchte möglicherweise nicht meine benutzerdefinierte Schnittstelle/Klassen verwenden. Ich verstehe nicht wirklich, warum sie diese Schnittstelle nicht zur Verfügung gestellt haben. – jwinandy