我不明白我的应用程序中发生了什么。我正在将带有更新的 PUT 请求从 Angular 项目发送到 java api。我有一个方法可以验证 put 请求中的查询参数,该方法如下所示:
private JsonObject validateRequestBody(JsonElement requestBody) {
if (!(requestBody instanceof JsonObject)) {
throw new IllegalArgumentException("Request body cannot be case to JSON object");
}
JsonObject bodyObj = requestBody.getAsJsonObject();
System.out.println(bodyObj.get("entityIri").equals(null));
if (bodyObj.get("entityIri") == null) {
System.out.println("null");
throw new IllegalArgumentException("Request body must contain entity IRI");
}
return bodyObj;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我只是想检查enityIri参数是否等于 null。为了测试它,即时通讯发送null作为entityIri从角项目。我试图将它们与equalmethod 和 with进行比较==,但在这两种情况下,输出始终为假。有人可以解释我为什么它们不相等吗?是因为我把它传给了JsonObject吗?我附上了调试的截图(我剪掉了不相关的部分)。
尝试使用isJsonNull方法:
提供检查以验证此元素是否表示空值。
if (bodyObj.get("entityIri").isJsonNull()) {
...
}
Run Code Online (Sandbox Code Playgroud)
当然,您需要检查之前是否bodyObj.get("entityIri")不是null。我没有添加它声明来使声明清晰。
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |