创建接受多个参数类型的通用函数

时间:2011-01-24 20:59:43

标签: java http

我正在编写一个大量使用网络服务的Android应用程序。

我想编写一个方法来向我的Http对象添加标头(HttpGet,HttpPost,HttpPut,HttpDelete)。

我想写1个方法而不是4个,因为所有的标题总是相同的。

我相信所有4扩展HttpRequestBase。最好的想法是编写一个方法,将HttpRequestBase作为参数并将我的各种HttpGet,HttpPost,HttpPut,HttpDelete对象转换为HttpRequestBase并调用该方法?

其他建议?

2 个答案:

答案 0 :(得分:3)

只有HttpGetHttpPostHttpPutHttpDelete派生自HttpRequestBase,然后你可以通过多态的魔力来做到这一点:

void MyFunciton(HttpRequestBase request);

答案 1 :(得分:3)

如果所有四个扩展相同的基类,则根本不需要进行任何转换;多态性应该做你想要的。即,简单地说:

void myFunction(HttpRequestBase request) {
    ...
}

...
HttpGet getRequest = new HttpGet();
myFunction(getRequest);  // No need to cast
但是,我对这个图书馆一无所知。可能有一些小错误阻止你这样做(但在这种情况下,这是一个糟糕的库设计)。