Java 泛型 return 类型

Java generics return type

    public class Signal<T>{
        public void addListener(T listener){
            // do some thing
        }
    }

    public static <T> Signal<? extends T> inject(Class<? extends T> type) {
        // do some thing and return 
    }

    public void execute(MyInterface callback){
        Signal<? extends MyInterface> signal = inject(callback.getClass());
        signal.addListener(callback); // Compiler error
    }

我在最后一个 raw 中遇到编译器错误,知道如何解决吗?我不介意更改 injectSignal class 的实现,我的目标是使 execute 方法像现在一样工作。

尝试:

    public static <T> Signal<T> inject(Class<? extends T> type) {
        return null;
    }

    public void execute(MyInterface callback){
        Signal<MyInterface> signal = inject(callback.getClass());
        signal.addListener(callback);
    }