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中有一个解决方案。在
^{pr2}$因为在python变量中,if也可以从外部块访问。在java中,我如何做到这一点。在
简单
为什么不:
与“在
if
之前声明变量”方法相比,这种方法的优势在于,即使变量是final
,这种方法也可以工作。在我假设
isHttps
变量检查是有原因的(?)因此,第二个cast实际上应该是HttpURLConnection
,这意味着问题中有一个打字错误? 如果是这样的话,问题中使用的大多数方法都可以在父类URLConnection
中使用,而不是全部。在幸运的是,HttpsURLConnection是HttpUrlConnection的一个子类,因此只需始终强制转换为该类即可,将其替换为(无需进行isHttps检查):
相关问题 更多 >
编程相关推荐