I'm trying to do something like this :
public class ResponseProcessorFactory {
    public static <T> ResponseProcessor<T> newResponseProcessor(){
        return new GsonResponseProcessor<T>();
    }    
}
public class GsonResponseProcessor<T> implements ResponseProcessor<T> {
    protected T response;
    protected TypeToken typeToken;
    public GsonResponseProcessor() {
        this.typeToken = new TypeToken<T>(){};
    }
    @Override
    public void parse(String jsonString) throws JSONException, IOException {
            response = GsonHelper.getGsonInstance().fromJson(jsonString, typeToken.getType());
    }
    public T getResponse() {
        return response;
    }
}
private void ResponseProcessor getResponseProcessor(){
       return ResponseProcessorFactory<List<String>>.newResponseProcessor();
}
Now, whenever I invoke getResponseProcessor(), it doesn't return me the response processor for List<String>. Rather, it returns the default response processor for Object.
I'm sure, I'm missing some concept regarding generic. Can someone explain in detail ?
EDIT : The real usage is like this :
   public BaseRequestWithResponseProcessor<List<Dashboard>> getDashboards(Listener<List<Dashboard>> responseListener, ErrorListener errorListener) {
        String url = mBaseUrl + "/dashboard";
        ResponseProcessor<List<Dashboard>> responseProcessor = ResponseProcessorFactory.newResponseProcessor();
        AuthInfo authInfo = getAuthInfo();
        BaseRequestWithResponseProcessor<List<Dashboard>> request = new BaseRequestWithResponseProcessor<List<Dashboard>>(
                Method.GET, url, authInfo, null, responseProcessor, responseListener, errorListener);
        return request;
    }
 
     
     
     
    
> responseProcessor = ResponseProcessorFactory.newResponseProcessor();` return you a `ResponseProcessor
– Smutje Oct 07 '14 at 11:14>`?