所以我有一个像这样的界面:

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();
    }
}

08-16 12:26