我是一名java初学者。我正面临下面的代码问题。
我正在设置备注并返回响应,但我只会将所有迭代的日期无效打印为备注。如果我将所有输入传递为空,则必须打印 ID为空,但它始终打印日期无效
public Response getInfoDetails(RequestDetails request)
{
Response response = new Response();
if(Utils.isEmpty(request.getID()))
{
response.setREMARKS("ID is empty);
}
if(Utils.isEmpty(request.getName()))
{
response.setREMARKS("Name is empty);
}
if(Utils.isIpAddressValid(request.getIP()))
{
response.setREMARKS("IP is invalid");
}
if(Utils.isDateValid(request.getDate()))
{
response.setREMARKS("Date is invalid");
}
return response;
}
请告知
答案 0 :(得分:3)
如果您希望仅在条件为假的情况下执行某些代码,则应使用if .. else
。
答案 1 :(得分:1)
一旦你弄清楚问题是什么 - 你想停下来然后回来。
您可以这样做:
if (Utils.isIpAddressValid(request.getIP()))
{
response.setREMARKS("IP is invalid");
return response; // don't proceed - stop and return
}
您也可以使用if..else
,但我会发现它太冗长且不太可读。
答案 2 :(得分:1)
可以有两种解决方案: 如果它进入任何if语句,你应该返回响应。它不会转向下一个声明。
OR
使用BobTheBuilder提到的else if语句
答案 3 :(得分:0)
我认为代码中存在逻辑错误
if(Utils.isDateValid(request.getDate()))
{
response.setREMARKS("Date is invalid");
}
如果日期有效,则添加日期无效的备注。检查应该是
if(!Utils.isDateValid(request.getDate()))
{
response.setREMARKS("Date is invalid");
}
IP地址检查也是如此。