首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实例化泛型类中的泛型类

实例化泛型类中的泛型类
EN

Stack Overflow用户
提问于 2017-10-17 11:31:19
回答 1查看 94关注 0票数 1

我有以下第一个泛型类及其接口:

代码语言:javascript
复制
    public interface Generic1Interface<E extends Comparable> {
    ..
    }

    public class Generic1 <E extends Comparable> implements 
    Generic1Interface<E>  {
    .. //implementation of Doubly linked list using Node objects
    }

第二个泛型类及其接口:

代码语言:javascript
复制
    public interface Generic2Interface<E extends Comparable> {
    ..
    }

    public class Generic2 <E extends Comparable> implements 
    Generic22Interface<E>  {
      Generic1Interface<E> list;
        //so nothing here but a reference to an object of type Generic1Interface<E>
    Generic2() {
      list = new Generic1();
    }

假设我们正在处理第二个类中的一个方法,我们尝试实例化第二个类的一个新实例,并将其命名为“Generic2”,然后尝试访问它的实例,它将给出一个错误:

代码语言:javascript
复制
    public Generic2Interface<E> union (E a, E b) {
      Generic2Interface<E> result = new Generic2();
      **result.list** = ....;

result.list会给出一个错误:“列表不能被解析,或者不是字段”。我认为一定有办法在泛型类中实例化泛型类。谢谢。

编辑:我需要遵守每个实现类中的接口。因此,正如您所看到的,方法联合必须返回类型为Generic2Interface的对象,这就是为什么我像这样声明结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-17 11:44:50

您需要将结果强制转换为Generic2类型。这样做是可行的:

System.out.println(((Generic2)result).list);

或者这个:

代码语言:javascript
复制
Generic2<E> result = new Generic2();
System.err.println(result.list);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46789126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档