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並重新執行此過程。我怎麼能減少這redudant線任何人都可以幫助我。如何減少java中的冗餘編碼?
我在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也可以從外部塊訪問。在Java中,我該如何做到這一點。
一個子類中做java的同樣的事情,它會工作 –
是不是你的 「HttpsURLConnection的的URLConnection =(HttpsURLConnection的)新的網址(URL).openConnection();」在兩種情況下行相同? – n00begon
我想kannan不知道他可以在if塊之前聲明變量 – gefei