All, I may have a basic misunderstand about the Generic in Java ,
Why can't we write a Java Generic son class to inherit its parent Generic class ?
define such as :
public class JsonResponse<T> implements Response {
}
But I define a another son class to inherit it :
public class MeetingClientResponse<T> extends JsonResponse<T> {
}
I define another caller class as:
public interface HttpExecutor<T extends Response> {
}
impl it class is :
public class DefaultHttpExecutor<T extends Response> implements HttpExecutor<T> {
public DefaultHttpExecutor(ResponseHandler<T> responseHandler) {
this.responseHandler = responseHandler;
}
}
public class JsonResponseHandler<T> implements ResponseHandler<JsonResponse<T>> {
}
public class ScheduleMeetingResponseHandler extends
JsonResponseHandler<ScheduleMeetingResponseVO> {
}
handler = ScheduleMeetingResponseHandler.newIntance()
When I use like this , it is no compile error:
HttpExecutor<JsonResponse<ScheduleMeetingResponseVO>> httpExecutor =
new DefaultHttpExecutor
<JsonResponse<ScheduleMeetingResponseVO>>(handler);
But When I use like this , it will compile error in Eclipse :
HttpExecutor<MeetingClientResponse<ScheduleMeetingResponseVO>> httpExecutor =
new DefaultHttpExecutor
<MeetingClientResponse<ScheduleMeetingResponseVO>>(handler);
Eclipse tip error as : The Constructor DefaultHttpExecutor is undefined