我在一周中的几天(周一到周日)的 java 对象中有 7 个布尔变量。我试图从几天列表的 for 循环中找到一种简洁的方式来说明以下内容:
private boolean isWorkDay(String day, Object pgMasterTaskList) {
if(day=="Sunday" && pgMasterTaskList.Sunday==true) {
return true;
}
if(day=="Monday" && pgMasterTaskList.Monday==true) {
return true;
}
if(day=="Tuesday" && pgMasterTaskList.Tuesday==true) {
return true;
}
if(day=="Wednesday" && pgMasterTaskList.Wednesday==true) {
return true;
}
if(day=="Thursday" && pgMasterTaskList.Thursday==true) {
return true;
}
if(day=="Friday" && pgMasterTaskList.Friday==true) {
return true;
}
if(day=="Saturday" && pgMasterTaskList.Saturday==true) {
return true;
}
else return false;
}
我希望我可以用类似的东西来减少重复。
private boolean isWorkDay(String day, Object pgMasterTaskList) {
if(pgMasterTaskList.getVariableByName(day)==true) {
return true;
}
else return false;
}
我的想法是使用反射来检查名为“Monday”的变量的值是否等等,但我不确定如何以这种方式使用它。
编辑
我已经提交了一个适用于我的具体案例的答案。再详细一点...
我正在将此信息写入 pdf,因此我正在处理字符串比较,因为我必须将它们映射到 pdf 中的字段名称。所以我试图保持一致。任何一天的组合都可以是一个工作日。我想这给我留下了 128 个连击?(2^7)。信息由 csv 输入,所以我想将 day in 作为字符串读取,因为它是这样输入的。