Java ,多个变量都只允许是 0 或 1,怎么写简单

2020-12-30 11:44:19 +08:00
 nutting
if (!(open.equals("0") || open.equals("1")) && (w1.equals("0") || w1.equals("1"))
&& (w2.equals("0") || w2.equals("1")) && (w3.equals("0") || w3.equals("1"))
&& (w4.equals("0") || w4.equals("1")) && (w5.equals("0") || w5.equals("1"))
&& (w6.equals("0") || w6.equals("1")) && (w7.equals("0") || w7.equals("1"))) {
throw new Exception("设置项目参数非法!");
}

checkstyle 检测说表达式过于复杂,怎么简化,最好别用 java8 以上的什么新语法
6346 次点击
所在节点    Java
52 条回复
corningsun
2020-12-30 18:01:53 +08:00
提醒下,open 前面有个 `!`,只对 open 有效。建议写好单元测试再重构


https://gist.github.com/corningsun/1afdd69da58d3ed7888ce022be76d4da
Gwkang
2020-12-30 19:33:42 +08:00
变参加递归
akira
2020-12-30 23:34:24 +08:00
既然你只是要过 chekcstyle 。。。

if (!(open.equals("0") || open.equals("1")) ) {
throw new Exception("设置项目参数非法!");
}
if (!(w1.equals("0") || w1.equals("1")) ) {
throw new Exception("设置项目参数非法!");
}
if (!(w2.equals("0") || w2.equals("1")) ) {
throw new Exception("设置项目参数非法!");
}
stevefan1999
2020-12-31 03:14:40 +08:00
真值表啊
stevefan1999
2020-12-31 03:19:19 +08:00
草那這樣好了
```js
const isAcceptable = str => /0|1/.matches(str)
if ([open, w1, w2, w3, w4, w5, w6, w7].map(isAcceptable).filter(x => !x).length > 0) {
throw new Exception("设置项目参数非法!");
}
```
ojbkojbk
2020-12-31 10:39:26 +08:00
你这个参数应该是从接口传入的吧,在接口的入参用注解正则校验
另外在 equals 的时候 ,常量放在前面,防止封装类型传入空报指针
xx6412223
2020-12-31 10:48:33 +08:00
这代码看着被人看了要被骂的
weizhen199
2020-12-31 10:53:46 +08:00
0000,0001,1101,0101

lz 你看看这个像啥
TheF00L
2020-12-31 14:16:07 +08:00
枚举多好
daryl
2020-12-31 15:18:31 +08:00
枚举不行么?
checkzhzzzzz
2020-12-31 15:27:37 +08:00
map.put(str,"");
map.size()
SkyLine7
2021-01-04 15:19:36 +08:00
枚举

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX