我有以下第一个通用类及其接口:

    public interface Generic1Interface<E extends Comparable> {
    ..
    }

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


第二个泛型类及其接口:

    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实例,它将产生错误:

    public Generic2Interface<E> union (E a, E b) {
      Generic2Interface<E> result = new Generic2();
      **result.list** = ....;


result.list将给出错误:“列表无法解析或不是字段”。我认为必须有一种变通方法来实例化泛型类中的泛型类。
谢谢。

编辑:我需要遵守每个实现的类中的接口。因此,您可以看到方法union必须返回Generic2Interface类型的对象,这就是我这样声明结果的原因。

最佳答案

您需要将结果强制转换为Generic2类型。这有效:

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

或这个:

Generic2<E> result = new Generic2();
System.err.println(result.list);

07-28 13:36