作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Java 中,有什么方法可以从现有枚举定义新的枚举吗?我想要以下功能。
public enum A{1, 2, 3, 4, 5, 6, 7, 8, 9};
public enum B{1, 2, 3, 4};
public enum C{3, 4, 5, 6, 7};
1、2、3 和 all 必须相同,即
A.1 == B.1 = true
B.4 == C.4 = true
现实生活中的例子是“DAYS”、“WEEKDAYS”、“WEEKENDDAYS”、“LECTUREDAYS”、“PARTYDAYS”等等。
最佳答案
您不能扩展枚举,但从您的周/周末示例来看,您似乎需要稍微不同地考虑它。如果我们有 enum Days{ MON, TUE, WED, THU, FRI, SAT, SUN }
,那么按如下方式考虑周/周末:
EnumSet<Days> weekDays = EnumSet.range(Days.MON, Days.FRI);
EnumSet<Days> weekendDays = EnumSet.range(Days.SAT, Days.SUN);
EnumSet<Days> partyDays = EnumSet.of( Days.TUE, Days.THU );
诸如“任何工作日也是派对日吗?”之类的自然问题然后可以按照您的期望表达:
!Collections.disjoint(weekDays, partyDays)
希望这对您有所帮助。
关于Java:新枚举是旧枚举的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26456674/
我是一名优秀的程序员,十分优秀!