Java泛型-构造函数类型

标签 java generics

public class AClass<X extends AnInterface>{

    public AClass(X x){
    }

}

public class Y implements AnInterface{

}

在调用代码中,如果我有:

public static<X extends AnInterface> void main(String args){

    AnInterface y = new Y();
    AClass a = new AClass<AnInterface>(y);

}

我应该能够在 AClass 的构造函数中使用 X 来让它工作,对吧?我收到错误消息,告诉我 AClass 的构造函数应该是 AnInterface 类型?

已编辑更改AClass a = new AClass<AnInterface>(y);

最佳答案

你需要告诉 AClass 它期望什么类型。

    public static void main(String args){
        AnInterface y = new Y();
        AClass<AnInterface> a = new AClass<AnInterface>(y);
    }

关于Java泛型-构造函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11429294/

相关文章:

java - 无法使用 jcabi 父 pom 进行构建

generics - F# 泛型并不那么通用

java - 通用生产者和消费者

Java 类与 JFrame 之间的通信 JDialog

c# - 限制泛型类型参数以具有特定的构造函数

Java 策略泛型作为在构造函数中传递策略的替代方案

generics - ASP.NET Core 中的通用存储库在 Startup.cs 中的每个表中没有单独的 AddScoped 行?

java - 在 eclipse 中运行程序

java - 要在批处理文件中传递的单击文件的路径

java - Docker::Dockerfile 问题 - 目标文件夹不可用