问题标签 [enumset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 休眠枚举集错误
我有一个 Role 对象,它拥有多个权限(即 ENUM)。但我不断收到这个错误。
什么是最好的代表方式。
角色等级:
休眠.cfg.xml
java - Java EnumSet - 添加并检查集合是否包含标志
我试图了解如何正确使用 EnumSet 来等效于 C# 的标志。这是我的实现和使用它的方法。如您所见,检查标志是否存在无法正常工作。你能告诉我我做错了什么吗?
我有以下带有 EnumSet 的枚举:
(这是否正确实施?)
我现在希望能够做一些事情,比如添加到集合中,并检查集合是否包含一个值。但是,这不起作用:
最后一种方法显示包含所有 ExcelRangeBorder 类型,即使我执行以下操作:
输出:
java - EnumSet 序列化
我刚刚失去了几个小时调试我的应用程序,我相信我偶然发现了一个(另一个 o_O)Java 错误......嗅闻......我希望不是,因为这会很伤心 :(
我正在执行以下操作:
- 创建
mask
带有一些标志的 EnumSet - 序列化它(使用
ObjectOutputStream.writeObject(mask)
) - 清除和设置其他一些标志
mask
- 再次序列化
预期结果:第二个序列化对象与第一个不同(反映实例的变化)
得到的结果:第二个序列化对象是第一个的精确副本
编码:
它打印:
我使用EnumSet
不正确吗?我是否必须每次都创建一个新实例而不是清除它?
感谢您的输入!
**** 更新 ****
我最初的想法是使用 anEnumSet
作为掩码来指示在随后的消息中哪些字段将存在或不存在,因此是一种带宽和 cpu 使用优化。大错特错!!!AnEnumSet
需要很长时间来序列化,每个实例需要 30 (!!!) 字节!太空经济就这么多:)
简而言之,虽然ObjectOutputStream
对于原始类型来说非常快(正如我已经在这里的一个小测试中发现的那样:https : //stackoverflow.com/a/33753694),但对于(尤其是小)对象来说,它非常缓慢且效率低下。 .
因此,我通过使自己的 EnumSet 由 int 支持并直接序列化/反序列化 int(而不是对象)来解决它。
在序列化过程中大约快 130 倍,在反序列化过程中大约快 25 倍......
我的枚举集:
常规枚举集:
虽然它并不安全。例如,它不适用于超过 32 个条目的枚举。
如何确保枚举在创建 MyEnumSet 时的值少于 32 个?
java - 返回枚举的方法
我有一个涉及 EnumSet 和 Enum 的问题。更具体地说,关于将它们作为参数传递并从方法中返回它们。
基本上,我希望一个类中的一个方法创建一个 Enum 的某些元素的 EnumSet,而不是希望所述类将 EnumSet 传递给另一个类,其中新类使用逻辑从集合中选择一个特定元素并将其传递给第三类,执行一些期望的动作。如果这太令人困惑,我试图在下面提供一些上下文。
我正在尝试制作一个包含多个类的二十一点模拟器程序。与我的问题相关的类是庄家、玩家和手牌。
我遇到的问题是我希望 Hand 类有一个选项枚举,例如
然后我要手检查手牌的内容,即 ArrayList 牌(数组列表中的整数值仅代表牌的等级,花色不重要),以确定 Player 对象有哪些选项可用。
我想要 Hand 类中的 getPlayerOptions() 方法来确定可能的选项并创建一个
包含可用选项。
我完全知道 Hand 类如何执行逻辑并创建我需要的 EnumSet,但我很难找出如何将“EnumSet availableOptions”作为参数发送到播放器类,而不是让播放器类运行 playerOption() 方法它将一个“选项”返回给经销商对象,经销商相应地发牌。
这只是一个没有任何逻辑的片段,但这是否适用于返回枚举集:
java - java.util.stream.Collectors 与 EnumSet 流
我正在尝试使用下面的位掩码代替代码
我想返回 EnumSet 而不是一个普通的集合(不想因为强制转换而放弃 EnumSet 的用处)。
需要一些关于如何创建自定义收集器来收集 EnumSet 的说明。
jsp - 检查集合是否包含特定枚举值的 EL 语法
我有一个 Item 对象,它有一个字段是一组 ItemTypes:
ItemType 当然是一个简单的枚举。
在我的 JSP 中,我想使用 JSTL 来查看一个项目是否具有特定的 ItemType,我尝试使用以下三个片段,但没有得到任何错误和结果。我不确定为什么所有三个都失败了。有人可以解释一下,对于这三种情况,为什么该程序不像我认为的那样工作,并提供第四个可行的替代方案:)?
重要的是ItemType
枚举是公共的,而不是在另一个类中。任何其他类都可以完全访问它,包括解析 EL/JSTL/JSP 的类。
请注意,遍历枚举集中的所有值都可以正常工作:
结果:
java - 在 EnumSet 和布尔值数组之间转换
我有一个EnumSet
并且想要在布尔基元数组之间来回转换。如果它工作得更好,我可以使用 aList
而不是数组,和/或Boolean
对象而不是布尔原语。
我想在另一端得到一个如下所示的数组:
这里的这个问题与这个问题类似,Convert an EnumSet to an array of integers。差异:
- 布尔或
Boolean
与整数(显然) - 我希望枚举的所有成员都被表示,
TRUE
每个枚举元素都包含在 中,每个元素EnumSet
都FALSE
包含在EnumSet
. 另一个问题的数组仅包含在EnumSet
. (更重要的是)
c# - 将枚举与大量项目 c#
h 每个人都在 c#.net 中使用枚举,而我的数据集
在 Windows 10 上的 iis 中大约有 300 项:
当我像这样使用枚举时:
结果是错误的,当我这样使用时
答案改变了,也是错误的:-)
我尝试在 iis 中跟踪问题,表达其正确的工作,当我在 iis 上测试时,程序总是发生,
每个人都可以帮助我吗?
java - 从两种类型的 Enum 之一实例化 EnumSet
我有这样声明的这两个枚举:
如此处所示,它们都实现了这个接口。
我在这里定义了一个类,它包含一个 EnumSet,它将从 Enum1 或 Enum2 中获取所有元素。这将通过一个将索引作为参数的方法来定义。像这样的东西:
现在,我知道我必须以某种方式使用泛型来完成此操作,但我不知道该怎么做,因为我对它不够熟悉,我希望你能启发我一点。
提前感谢您的回答。
java - Java中有类似嵌套枚举的东西吗?
我想做一个 Country 枚举,我可以从中访问它的州,我该怎么做?
像这样的东西: