我知道查询字符串是URL的一部分,后跟“?”分离性。 我正在通过一个示例代码。我不明白这行代码的目的 -
String urlString = request.getRequestURL().toString();
String queryString = request.getQueryString();
urlString += queryString == null ? "" : "?" + queryString;
// HOWS DOES THIS APPEND THE URL AND QUERY TO GENERATE URL. AND WHAT IS IT COMPARING TO NULL?
网址url =新网址(urlString);
答案 0 :(得分:1)
查询字符串可能不存在(即为空),在这种情况下,代码注意不附加“?”。重新格式化:
urlString += ( (queryString == null) ? " " : ("?"+queryString) );
答案 1 :(得分:1)
它是java三元运算符(有时称为elvis运算符?:)。语义如下:
bool ? A : B
与
相同if (bool) A
else B
在你的情况下:
urlString += (queryString == null ? "" : "?") + queryString;
仅当queryString
不等于urlString
时,才会将queryString
附加到null
(否则会附加“{”}。
答案 2 :(得分:0)
我猜你不知道三元运算符,(if) ? (then) : (else)
在您的情况下if (queryString != null) then ("") else ("?" + queryString)
问题中的代码也缺少括号,因为它应该是:
urlString += queryString == null ? "" : ("?" + queryString);