uygulayan belirtmek için bir yol yoktur Ben bir nesne ikisini uygulamak için sormak bir kurucu oluşturmak istiyorum jGraphT, bir argüman iki arabirimleri
/*
interface DirectedGraph<V,E> { ...}
interface WeightedGraph<V,E> { ...}
*/
public class SteinerTreeCalc {
public SteinerTreeCalc(< ??? implements DirectedGraph<V,E>, WeightedGraph<V,E> > graph) {
......
}
}
kullanarak kod bu tür yapmak için cazip arabirimleri.
Güncelleme: ile gelip insanlara amacım ise
, zaten orada seçilir Vertex ve kenarları (V ve E) için sınıfları, ama çok teşekkürler:
public class SteinerTreeCalc <V, E, T extends DirectedGraph<V, E> & WeightedGraph<V, E>>
{
....
}
Hem "DirectedGraph" hem de "WeightedGraph" arabirimini adlandırmak için iyi bir nedeniniz olduğunu varsayalım, böylece "SteinerTreeCalc" kullanıcısı için gerekli olan tüm sözleşmeleri alabilirsiniz. tek bir yerde destek mi? –
İyi bir tane! JgraphT, bir DirectedGraph ve WeightedGraph gibi bir arabirim sağlamaz ve kullanıcı özel arayüzümü/sınıflarımı kullanmak istemeyebilir. Bu arayüzü neden sağlamadıklarını anlamıyorum. – jwinandy