问题标签 [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.

0 投票
1 回答
185 浏览

java - 休眠枚举集错误

我有一个 Role 对象,它拥有多个权限(即 ENUM)。但我不断收到这个错误。

什么是最好的代表方式。

角色等级:

休眠.cfg.xml

0 投票
1 回答
697 浏览

java - Java EnumSet - 添加并检查集合是否包含标志

我试图了解如何正确使用 EnumSet 来等效于 C# 的标志。这是我的实现和使用它的方法。如您所见,检查标志是否存在无法正常工作。你能告诉我我做错了什么吗?

我有以下带有 EnumSet 的枚举:

(这是否正确实施?)

我现在希望能够做一些事情,比如添加到集合中,并检查集合是否包含一个值。但是,这不起作用:

最后一种方法显示包含所有 ExcelRangeBorder 类型,即使我执行以下操作:

输出:

0 投票
1 回答
1549 浏览

java - EnumSet 序列化

我刚刚失去了几个小时调试我的应用程序,我相信我偶然发现了一个(另一个 o_O)Java 错误......嗅闻......我希望不是,因为这会很伤心 :(

我正在执行以下操作:

  1. 创建mask带有一些标志的 EnumSet
  2. 序列化它(使用ObjectOutputStream.writeObject(mask)
  3. 清除和设置其他一些标志mask
  4. 再次序列化

预期结果:第二个序列化对象与第一个不同(反映实例的变化)

得到的结果:第二个序列化对象是第一个的精确副本

编码:

它打印:

我使用EnumSet不正确吗?我是否必须每次都创建一个新实例而不是清除它?

感谢您的输入!

**** 更新 ****

我最初的想法是使用 anEnumSet作为掩码来指示在随后的消息中哪些字段将存在或不存在,因此是一种带宽和 cpu 使用优化。大错特错!!!AnEnumSet需要很长时间来序列化,每个实例需要 30 (!!!) 字节!太空经济就这么多:)

简而言之,虽然ObjectOutputStream对于原始类型来说非常快(正如我已经在这里的一个小测试中发现的那样:https : //stackoverflow.com/a/33753694),但对于(尤其是小)对象来说,它非常缓慢且效率低下。 .

因此,我通过使自己的 EnumSet 由 int 支持并直接序列化/反序列化 int(而不是对象)来解决它。

在序列化过程中大约快 130 倍,在反序列化过程中大约快 25 倍......

我的枚举集:

常规枚举集:

虽然它并不安全。例如,它不适用于超过 32 个条目的枚举。

如何确保枚举在创建 MyEnumSet 时的值少于 32 个?

0 投票
0 回答
160 浏览

java - 返回枚举的方法

我有一个涉及 EnumSet 和 Enum 的问题。更具体地说,关于将它们作为参数传递并从方法中返回它们。

基本上,我希望一个类中的一个方法创建一个 Enum 的某些元素的 EnumSet,而不是希望所述类将 EnumSet 传递给另一个类,其中新类使用逻辑从集合中选择一个特定元素并将其传递给第三类,执行一些期望的动作。如果这太令人困惑,我试图在下面提供一些上下文。

我正在尝试制作一个包含多个类的二十一点模拟器程序。与我的问题相关的类是庄家、玩家和手牌。

我遇到的问题是我希望 Hand 类有一个选项枚举,例如

然后我要手检查手牌的内容,即 ArrayList 牌(数组列表中的整数值仅代表牌的等级,花色不重要),以确定 Player 对象有哪些选项可用。

我想要 Hand 类中的 getPlayerOptions() 方法来确定可能的选项并创建一个

包含可用选项。

我完全知道 Hand 类如何执行逻辑并创建我需要的 EnumSet,但我很难找出如何将“EnumSet availableOptions”作为参数发送到播放器类,而不是让播放器类运行 playerOption() 方法它将一个“选项”返回给经销商对象,​​经销商相应地发牌。

这只是一个没有任何逻辑的片段,但这是否适用于返回枚举集:

0 投票
1 回答
13044 浏览

java - java.util.stream.Collectors 与 EnumSet 流

我正在尝试使用下面的位掩码代替代码

我想返回 EnumSet 而不是一个普通的集合(不想因为强制转换而放弃 EnumSet 的用处)。

需要一些关于如何创建自定义收集器来收集 EnumSet 的说明。

0 投票
1 回答
831 浏览

jsp - 检查集合是否包含特定枚举值的 EL 语法

我有一个 Item 对象,它有一个字段是一组 ItemTypes:

ItemType 当然是一个简单的枚举。

在我的 JSP 中,我想使用 JSTL 来查看一个项目是否具有特定的 ItemType,我尝试使用以下三个片段,但没有得到任何错误和结果。我不确定为什么所有三个都失败了。有人可以解释一下,对于这三种情况,为什么该程序不像我认为的那样工作,并提供第四个可行的替代方案:)?

重要的是ItemType枚举是公共​​的,而不是在另一个类中。任何其他类都可以完全访问它,包括解析 EL/JSTL/JSP 的类。

请注意,遍历枚举集中的所有值都可以正常工作:

结果:

0 投票
3 回答
1280 浏览

java - 在 EnumSet 和布尔值数组之间转换

我有一个EnumSet并且想要在布尔基元数组之间来回转换。如果它工作得更好,我可以使用 aList而不是数组,和/或Boolean对象而不是布尔原语。

我想在另一端得到一个如下所示的数组:

这里的这个问题与这个问题类似,Convert an EnumSet to an array of integers。差异:

  • 布尔或Boolean与整数(显然)
  • 我希望枚举的所有成员都被表示,TRUE每个枚举元素都包含在 中,每个元素EnumSetFALSE包含在EnumSet. 另一个问题的数组仅包含在EnumSet. (更重要的是)
0 投票
2 回答
161 浏览

c# - 将枚举与大量项目 c#

h 每个人都在 c#.net 中使用枚举,而我的数据集
在 Windows 10 上的 iis 中大约有 300 项:
当我像这样使用枚举时:

结果是错误的,当我这样使用时

答案改变了,也是错误的:-)

我尝试在 iis 中跟踪问题,表达其正确的工作,当我在 iis 上测试时,程序总是发生,
每个人都可以帮助我吗?

0 投票
2 回答
824 浏览

java - 从两种类型的 Enum 之一实例化 EnumSet

我有这样声明的这两个枚举:

如此处所示,它们都实现了这个接口。

我在这里定义了一个类,它包含一个 EnumSet,它将从 Enum1 或 Enum2 中获取所有元素。这将通过一个将索引作为参数的方法来定义。像这样的东西:

现在,我知道我必须以某种方式使用泛型来完成此操作,但我不知道该怎么做,因为我对它不够熟悉,我希望你能启发我一点。

提前感谢您的回答。

0 投票
4 回答
4254 浏览

java - Java中有类似嵌套枚举的东西吗?

我想做一个 Country 枚举,我可以从中访问它的州,我该怎么做?

像这样的东西: