2016-03-19 47 views
0

所以我有這樣的接口:如何創建一個類的泛型類型與前者沒有父子關係的類?

public interface INotifier<T,G>{ 
    G getNotifications(){ 
    //does something 
    } 
} 

有其實現的接口,並有不同的泛型類型爲G.

和消耗像這樣的GetNotification方法的另一個類2個其他子類:

public class Orchestrater<K>{ 
    K notifications = notifier.getNotifications(); 
} 

我想推斷K爲與G相同的類型。但是我沒有Orchestrater作爲父類或INotifier的子類來斷定通過反射?任何想法如何做到這一點?

+1

'notifier.getNotifications();'甚至不具有相同簽名的接口(沒有傳遞參數)。要麼有超類無參數方法,要麼你的設計關閉。是否有其他代碼我們可以看到? – Tgsmith61591

+0

對不起我的壞!更正它。我只是將我的代碼轉換成了它的密碼。所以我不能透露。謝謝 ! – Sid06

回答

1

它應該很容易有對INotifier#getNotifications(T)返回類型爲一個爲您Orchestrator<K>泛型類型相同的形參,這一切取決於你的notifier字段聲明。

這是你Orchestrator類的developped樣本:

public class Orchestrator<K> 
{ 
    private INotifier<Object, K> notifier; 

    public K getOrchestratedNotifications() { 
     return notifier.getNotifications(); 
    } 
} 
+0

謝謝隊友!這有幫助。 :) – Sid06

+0

很高興能在幫助:) – tmarwen