![](/img/trans.png)
[英]JAVA: is the recursive approache the best way to check if json contains a specific key with a specific data value?
[英]Best way to check specific result of 2 methods in Java
我有以下方法
public Message JavaMethod(String id1, String id2)
我需要在其中调用Dao类的方法来验证具有提供的ID的用户是否存在,如果不存在,请使用以下方法创建一条消息,详细说明在数据库中找不到的ID:
createMessage("Message string",Enum.TYPE,IdofMissingUser);
起初,我想到这样做:
public Message JavaMethod(String id1, String id2) {
if(Dao.findUser(id1) == null || Dao.findUser(id2) == null){
return createMessage("Error",Enum.Error,id1);
}else{
//do some other stuff
}
}
但是显然,这样一来,我将不知道尚未找到哪个ID。
因此,我继续进行操作,并创建了一个丑陋的循环:
public Message JavaMethod(String id1, String id2) {
if (Dao.findUser(id1) == null) {
return createMessage("Error", Enum.Error, id1);
} else if (Dao.findUser(id2) == null) {
return createMessage("Error", Enum.Error, id2);
} else {
// Do stuff after veryfing users exists
return createMessage("All OK", Enum.OK, messageData);
}
}
但是,我对这是解决此基本问题的最佳解决方案并没有真正的信心。
在这种情况下,你们会推荐什么?
您可以将ID包装在列表中并使用for
循环:
public Message someMethod(String id1, String id2) {
for (String id: Arrays.asList(id1, id2)) {
if (Dao.findUser(id) == null) {
return createMessage("Error", Enum.Error, id);
}
}
// Do stuff after verifying users exists
return createMessage("All OK", Enum.OK, messageData);
}
如果只有两个ID,可以使用简写布尔值。 问题是,这是否会使它的可读性降低。 例如
public Message JavaMethod(String id1, String id2) {
User user1 = Dao.findUser(id1);
User user2 = Dao.findUser(id2);
if(user1 == null || user2 == null){
return createMessage("Error",Enum.Error,user1 == null ? id1 : id2);
}else{
//do some other stuff
}
}
如果两个ID都为null,这也不会处理,因为您可以扩展它:
public Message JavaMethod(String id1, String id2) {
User user1 = Dao.findUser(id1);
User user2 = Dao.findUser(id2);
if(user1 == null || user2 == null){
return createMessage("Error",Enum.Error,user1 == null && user2 == null? both : user1 == null ? id1 : id2);
}else{
//do some other stuff
}
}
您需要定义both
变量的返回值
有关速记布尔注释的更多详细信息,请参见此处
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.