如何编写一个接受不同对象类型但在Java中执行相同操作的函数

时间:2017-02-08 02:18:09

标签: java

我正在使用import org.apache.http.client.methods.HttpPut和HttpGet来形成我的put和get请求的标头。在这些方法中添加的许多标题都是相同的,我想避免在put和get函数中编写相同的代码。有没有办法让一个函数接受HttpPut或HttpGet对象作为参数,并能够添加标题?例如:

HttpGet get= new HttpGet(url);
get = addHeaders(get);
get.setHeader();//custom headers for get requests

HttpPut put = new HttpPut(url);
put = addHeaders(put);

Object addHeaders(Object x) {
   x.setHeader();//add the common headers
   return x;
}

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:4)

HttpGetHttpPost都实现了HttpMessage接口,其中包含方法setHeader()所以

public void setHeader(HttpMessage msg){
      msg.setHeader("xxxx");
}

会做到这一点。

答案 1 :(得分:3)

HttpMessageHttpGetHttpPut的父级。

试试这个

HttpMessage addHeaders(HttpMessage x) {
   x.setHeader();//add the common headers
   return x;
}