【发布时间】:2013-03-19 07:41:23
【问题描述】:
假设我有一个这样定义的抽象类:
public class Response<T> {
private List<Response<T>> subResponses;
}
还有两个这样定义的子类:
public class SectionResponse extends Response<SectionResponse> {
}
public class FormResponse extends Response<FormResponse> {
}
基本上所有 Response 的子类都需要有一个相同类的列表。现在在代码的其他地方我想要一个可以包含任一子类的 Response 对象列表。
在不使用原始类型的情况下定义此列表的最佳方法是什么?我已经尝试过List<? extends Response<?>>,但我无法在这样定义的 List 上调用 add 方法,因为参数是参数化类型。
【问题讨论】:
-
List<T extends Response<T>>?只是大声思考。 -
@JanDvorak:这不是有效的 Java 语法
标签: java generics inheritance