【发布时间】:2015-08-27 17:11:53
【问题描述】:
我有这个函数httpGet(),它调用http():
public static int httpGet(String url, StringBuilder response) throws IOException {
return http(url,(http)->http.setRequestMethod("GET"), response);
}
private static int http(String url, httpMethod method, StringBuilder response) throws IOException {
HttpURLConnection http = (HttpURLConnection)new URL(url).openConnection();
http.setConnectTimeout(5000);
http.setReadTimeout(5000);
method.doMethod(http);
int status = 404;
......
......
return status;
}
我想为readTimeout 添加一个附加参数,该参数必须是可选的,默认值将在其他情况下使用。
在这种情况下,readTimeout 对于所有调用都设置为 5000,但我希望在更长的超时时间内执行此特定调用。
我认为我需要这个新参数是可选的,因为我不想更改调用此 http() 方法的实现。
我是这样称呼它的:
Assert.assertEquals(HTTP_OK, httpGet(DEFAULT_BROWSCAP_ENDPOINT, result));
如何为readTimeout 实现一个新的可选参数?
【问题讨论】:
-
Java 没有默认值,如 Python、C++、VBA、Delphi 和许多语言。使用备用签名创建新的构造函数。
-
你需要定义一个新方法,(不幸的是?)java不支持可选参数。