
惊讶地发现它正在使用位域而不是
EnumSet。虽然合理,但在此邮件列表线程中进行了讨论。似乎原因是能够设置和取消设置各种特征而不会影响呼叫者端的特征。使用
EnumSet,要实现这一点,
EnumSet每次需要在不同阶段进行更改时,都需要创建一个新对象。我想这就是位域赢得比赛的原因。
该线程的结论句基本上在这里预料到您的问题:
Java 8
API中此类标志的存在将(并且应该)引起很多人的注意,因为它违背了人们十年来一直被告知的内容。如果按原样采用,那么对于文档阅读者来说,最好是对为什么拒绝替代品有一个很好的解释。“我们对int标志感到满意,并且没有其他任何可以更好地表明自身的东西了”。“我们知道int标志对于API而言不是很好,但是我们非常努力地寻找了更好的替代方法,但没有成功”(如果是真的)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)