返回值的java反转
我有一个标志,我想传递给一个函数,该函数根据映射中的值返回true或false:
// userList is a List<String> and is stored as the value field in a map
// user is a String
if(flag)
{
if (userList == null)
return false;
else if(userList.size() == 0)
return true;
return userList.contains(user);
}
else
{
if (userList == null)
return true;
else if(userList.size() == 0)
return false;
return !userList.contains(user);
}
我的问题是:不管怎样,是否要整理这段代码,有很多复制(if和else块是相同的,只是它们的返回值彼此相反)
我不是一个非常有经验的代码,我真的很感激一些指导
# 1 楼答案
# 2 楼答案
使用
flag
值代替常量A
XOR
将作为最后一句话(留给读者作为练习:-p)# 3 楼答案
通过将返回值设置为flag的函数,可以轻松删除重复:
# 4 楼答案
我们可以将公共处理移到它自己的方法,然后根据
flag
变量进行分支,如下所示作为旁注,您可能有一个逻辑错误。我不知道你为什么要在
userList.size() == 0
的情况下return true
# 5 楼答案
也许能胜任
# 6 楼答案
下面是一种简化整个代码片段的方法,删除外部
if/else
语句: