如何实现统计User对象中4个Boolean属性true值数量的方法?
解决方法:统计User对象中Boolean属性为true的数量
没问题,这事儿其实很简单,我给你几种实用的实现思路,你可以根据自己用的编程语言来选:
Java 实现方案
基础判断法(兼容所有Java版本)
这种方法直白易懂,适合所有场景,还能避免空指针异常(如果你的Boolean属性可能为null的话):
public class User { private Boolean workOut1; private Boolean workOut2; private Boolean workOut3; private Boolean workOut4; // 记得补充构造器、getter和setter方法 public int countTrueWorkouts() { int trueCount = 0; // 用Boolean.TRUE.equals()避免null导致的空指针 if (Boolean.TRUE.equals(workOut1)) trueCount++; if (Boolean.TRUE.equals(workOut2)) trueCount++; if (Boolean.TRUE.equals(workOut3)) trueCount++; if (Boolean.TRUE.equals(workOut4)) trueCount++; return trueCount; } }
Stream流简化版(Java 8+)
如果你的项目用了Java 8及以上版本,用Stream会更简洁:
public int countTrueWorkouts() { return (int) Stream.of(workOut1, workOut2, workOut3, workOut4) .filter(Boolean.TRUE::equals) .count(); }
JavaScript 实现方案
如果是前端或者Node.js场景,这样写就行:
class User { constructor(workOut1, workOut2, workOut3, workOut4) { this.workOut1 = workOut1; this.workOut2 = workOut2; this.workOut3 = workOut3; this.workOut4 = workOut4; } countTrueWorkouts() { return [this.workOut1, this.workOut2, this.workOut3, this.workOut4] .filter(flag => flag === true) .length; } }
验证示例
比如你说的情况:workOut1=false、workOut2=true、workOut3=false、workOut4=false,调用上面的方法都会返回1,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Robbie
相关产品推荐
相关产品推荐

