Java泛型返回类型

标签 java android generics

    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
    }

我在最后一个原始文件中遇到编译器错误,知道如何修复它吗?我不介意更改 injectSignal 类的实现,我的目标是使 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/

相关文章:

java - 为什么 Oraoop 1.6 在分配内存块之前要等待 1.5 分钟?

android - 警报对话框中的 ListView

android - ListView 中 View 持有者模式与自定义 View 的区别

c# - 为什么编译器不能解析这些泛型类型

java - 必需的 ? 类型捕获,提供 T

java - 为什么我无法在 Windows 上使用 Java 从下载的源正确写入 PNG 文件?

java - 在 Struts 2 中使用 ModelDriven

java - 如何从我在 firebase 中加载的最后一个项目加载下一个 "n"项目

java - 使用 Retrofit 和 RxJava 组合来自多个 API 调用的数据 (Android)

java - 泛型映射键应该只允许两个类并且值一个类