java - 简化具有多个条件的 if 语句
问题描述
我坚持简化这样的 if 语句。我的项目中的 if 语句看起来有点像这样,但有点复杂。我有更多带有多个 OR 条件的 if 和 if else 条件。
private int testMethod(int a, char b, String s, float f, double d, TestClass testClass){
if (a == 2 || s.equals("testString") || f == 5 || d == 4 || testClass.getName().equals("testName")){
return 1;
}else if (a == 3 || f == 10 || d == 1){
return 2;
}else {
return 3;
}
}
有没有办法简化这样的 if 语句?谢谢!
解决方案
如果你可以简化这个,你可以试试这个。但我认为你的代码需要重构:)
private int testMethod(int a, char b, String s, float f, double d, TestClass testClass){
return isaBoolean(a, s, f, d, testClass) ? 1 : isaBoolean(a, f, d) ? 2 : 3;
}
private boolean isaBoolean(int a, float f, double d) {
return a == 3 || f == 10 || d == 1;
}
private boolean isaBoolean(int a, String s, float f, double d, TestClass testClass) {
return a == 2 || s.equals("testString") || f == 5 || d == 4 || testClass.getName().equals("testName");
}
推荐阅读
- java - 我正在尝试使用扫描仪计算文档中每个字母的百分比,但我无法弄清楚如何正确计算和显示它
- drupal - 使用作曲家安装 Drupal 8 Commerce
- javascript - 您可以创建一个函数来检查多个输入值并相应地更改它们的样式吗?
- css - 盒子阴影不起作用的主要原因是什么
- c++ - std::vector 结构学生示例
- vue.js - 在 Nuxt.js 中,加载一个简单的谷歌地图
- django - Django - 左连接来自不同数据库的两个查询集
- eloquent - 如果列为空,雄辩使用默认值
- python - 添加列表元素
- node.js - 当堆栈跟踪对于标准输出来说太大时,如何获取 NodeJS 错误?