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 中遇到编译器错误,知道如何解决吗?我不介意更改 inject
或 Signal
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);
}
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 中遇到编译器错误,知道如何解决吗?我不介意更改 inject
或 Signal
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);
}