所以我有一个像这样的界面:
public interface INotifier<T,G>{
G getNotifications(){
//does something
}
}
还有另外两个实现该接口的子类,它们具有不同的G通用类型。
另一个使用getNotification方法的类如下:
public class Orchestrater<K>{
K notifications = notifier.getNotifications();
}
我想将K推导为与G相同的类型。但是我没有Orchestrater作为INotifier的父类或子类来通过反射得出结论吗?任何想法如何做到这一点?
最佳答案
对于INotifier#getNotifications(T)
返回类型具有与Orchestrator<K>
泛型类型相同的形式参数应该很简单,并且这完全取决于您的notifier
字段声明。
这是您的Orchestrator
类的改进示例:
public class Orchestrator<K>
{
private INotifier<Object, K> notifier;
public K getOrchestratedNotifications() {
return notifier.getNotifications();
}
}