我有以下第一个泛型类及其接口:
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();
}
假设我们正在处理第二个类中的方法,并且我们尝试实例化第二个类的新实例,并将其命名为&#34; result&#34;,然后尝试访问其Generic2实例,它会给出一个错误:
public Generic2Interface<E> union (E a, E b) {
Generic2Interface<E> result = new Generic2();
**result.list** = ....;
result.list会给出错误:&#34;列表无法解析或不是字段&#34;。我认为必须有一个解决方法来在泛型类中实例化泛型类。 感谢。
编辑:我需要遵守每个实现的类中的接口。所以你可以看到方法union必须返回Generic2Interface类型的对象,这就是为什么我这样声明结果的原因。
答案 0 :(得分:1)
您需要将结果转换为Generic2
类型。这有效:
System.out.println(((Generic2)result).list);
或者这个:
Generic2<E> result = new Generic2();
System.err.println(result.list);