我正在编写一个大量使用网络服务的Android应用程序。
我想编写一个方法来向我的Http对象添加标头(HttpGet,HttpPost,HttpPut,HttpDelete)。
我想写1个方法而不是4个,因为所有的标题总是相同的。
我相信所有4扩展HttpRequestBase。最好的想法是编写一个方法,将HttpRequestBase作为参数并将我的各种HttpGet,HttpPost,HttpPut,HttpDelete对象转换为HttpRequestBase并调用该方法?
其他建议?
答案 0 :(得分:3)
只有HttpGet
,HttpPost
,HttpPut
,HttpDelete
派生自HttpRequestBase
,然后你可以通过多态的魔力来做到这一点:
void MyFunciton(HttpRequestBase request);
答案 1 :(得分:3)
如果所有四个扩展相同的基类,则根本不需要进行任何转换;多态性应该做你想要的。即,简单地说:
void myFunction(HttpRequestBase request) {
...
}
...
HttpGet getRequest = new HttpGet();
myFunction(getRequest); // No need to cast
但是,我对这个图书馆一无所知。可能有一些小错误阻止你这样做(但在这种情况下,这是一个糟糕的库设计)。