【发布时间】:2012-05-26 17:51:34
【问题描述】:
public static byte[] sendRequest(String url ,Object params ,boolean isHttps){
if(isHttps){
HttpsURLConnection urlConnection = (HttpsURLConnection)newURL(url).openConnection();
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(60000);
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
}
}else{
HttpURLConnection urlConnection = (HttpURLConnection)new URL(url).openConnection();
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(60000);
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
}
}
在这两个 if 和 else 在类型转换旁边包含相同的代码行。如果我再次将这行代码移到一个通用方法中,我想键入 cast 并再次执行此过程。我怎样才能减少这些多余的行,任何人都可以帮助我。
我在 python 中有一个解决方案。
//pseudo code .
if(isHttps) :
urlConnection = https .
else :
urlConnection = http .
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.setRequestMethod("POST");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(60000);
因为在 python 变量中的 if 也可以从外部访问 block 。在java中我该怎么做。
【问题讨论】:
-
在jave中做同样的事情,它会工作
-
不是你的“HttpsURLConnection urlConnection = (HttpsURLConnection)new URL(url).openConnection();”两种情况下的行相同吗?
-
我认为kannan不知道他可以在if块之前声明一个变量
标签: java python optimization