java - 创建接受多种参数类型的通用函数

标签 java http

我正在编写一个大量使用网络服务的 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/

相关文章:

java - Spring Boot - 表单上的自定义验证注释不起作用

java - 将 javabean 的各个部分添加到一起

http - 手动设置响应状态码

java - 在netty中使用TextWebsocketFrame在不同的TextAreas中写入不同的消息

java - 如何解决这个错误,如果我使用一个类会导致其他类接口(interface)也被感染

java - Java中如何将字符串放入JSON并获取值

php - PHP 超时会阻止同一网络上的人们加载页面吗?

http - 当由于特定原因不允许 DELETE 操作时返回哪个 HTTP 状态码

c# - WebClient 禁止打开维基百科页面?

java - http (json) 库,客户端和服务器,可能是异步的