我正在编写一个大量使用网络服务的 Android 应用程序。
我想编写一个方法来向我的 Http 对象添加 header (HttpGet、HttpPost、HttpPut、HttpDelete)。
我想编写 1 个方法而不是 4 个,因为所有方法的 header 始终相同。
我相信所有 4 个都扩展了 HttpRequestBase。最好的想法是编写一个方法,将 HttpRequestBase 作为参数并将我的各种 HttpGet、HttpPost、HttpPut、HttpDelete 对象强制转换为 HttpRequestBase 并调用该方法?
还有其他建议吗?
最佳答案
如果所有四个都扩展相同的基类,那么您根本不需要进行任何转换;多态性应该做你想做的事。即简单地说:
void myFunction(HttpRequestBase request) {
...
}
...
HttpGet getRequest = new HttpGet();
myFunction(getRequest); // No need to cast
不过,我对这个库一无所知。可能有一些小问题会阻止您执行此操作(但在这种情况下,这是一个糟糕的库设计)。
关于java - 创建接受多种参数类型的通用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4787103/