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
}
我在最后一个原始文件中遇到编译器错误,知道如何修复它吗?我不介意更改 inject
或 Signal
类的实现,我的目标是使 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);
}
关于Java泛型返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710558/