[英]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.