Suppose I an abstract class defined like this:
public class Response<T> {
private List<Response<T>> subResponses;
}
and two subclasses defined like this:
public class SectionResponse extends Response<SectionResponse> {
}
public class FormResponse extends Response<FormResponse> {
}
Basically all subclasses of Response need to have a list of the same class. Now somewhere else in the code I want to have a list of Response objects that can contain either subclass.
What would be the best way to define this list without using raw types? I've tried List<? extends Response<?>>
but I can't call the add method on a List defined like this because the parameter is a parameterized type.