我想将DefaultHttpClient转换为单例类
public class HttpClient {
private static final String TAG = "&&----HTTPClient-----**";
public static void SendHttpPost (String URL, JSONObject jsonObjSend){
try{
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPostRequest = new HttpPost(URL);
}
我该怎么做?实际上我尝试了一些实现它们的方法,但它对我没用。
以下是我的单身人士应该如何看待的例子
public class DefaultHttpClient {
static DefaultHttpClient instanceCE;
public static DefaultHttpClient getInstance(){
if(instanceCE == null){
instanceCE = new DefaultHttpClient ();
}
return instanceCE;
}
DefaultHttpClient object = new DefaultHttpClient .getInstance(); //calling it here
我知道这个实现是错误的等待您的意见来帮助我。谢谢!
我已经把最终的实现放在了不起作用。
public class HttpClient {
public static DefaultHttpClient instanCE;
private static final String TAG = "&&----HTTPClient-----**";
public static DefaultHttpClient getInstance(){
if(instanCE == null){
instanCE = new DefaultHttpClient();
}
return instanCE;
}
public static void SendHttpPost (String URL, JSONObject jsonObjSend){
try{
DefaultHttpClient httpclient = DefaultHttpClient.getInstance();
HttpPost httpPostRequest = new HttpPost(URL);
答案 0 :(得分:2)
3件事:
1)您需要创建一个私有构造函数,以确保getInstance()
是创建实例的唯一方法。
private DefaultHttpClient() {
// Optional Code
}
2) getInstance()
是静态的,因此应该像这样调用:
DefaultHttpClient object = DefaultHttpClient.getInstance();
3)您错过了结束}
修改强>
“我收到一条错误,指出该方法未定义为DefaultHttpClient”
如果是这种情况,请确保输入正确的类而不是
org.apache.http.impl.client.DefaultHttpClient
答案 1 :(得分:2)
您的代码没有任何问题,只是您错误地调用了它。
DefaultHttpClient object = DefaultHttpClient.getInstance();
你的名字似乎也混淆了。将DefaultHttpClient重命名为单例的第一行和第三行上的MyHttpclient。 这肯定会解决它。
干杯!
答案 2 :(得分:1)
似乎没关系,你只是说错了。 getInstance()方法是静态的。所以如何调用它的正确方法是:
DefaultHttpClient object = DefaultHttpClient.getInstance();