问题标签 [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 回答
1785 浏览

java - 使用 Hibernate 在 Postgresql 中持久化 EnumSet

Effective Java,第 32 项,状态使用 EnumSet 而不是位字段。我还找到了关于该主题的不错的教程。这本书已经出版了一段时间,为什么我没有找到任何关于如何使用 Hibernate 持久化 EnumSet 的帖子?好吧,我实际上找到了这个另一个,但是它们都很旧,指向相同且更旧的解决方案,不幸的是,这对我没有帮助,也许是因为我缺乏更深入的休眠知识?这是我的代码的摘要:

我尝试过其他注释,例如

有和没有(targetClass = MyOptions.class)

并且

但没有运气。

最好将信息存储在my_thing表的新列中,但如果需要,我也可以为枚举使用单独的表。

0 投票
2 回答
337 浏览

java - 由 EnumSet 控制的互斥 Enum

我想用 TagEnum 来描述一个人。MALE 和 FEMALE 是互斥的,年龄的枚举也是如此。

例如,一旦将 MALE 放入 EnumSet,将不会接受 FEMALE。

有这样的EnumSet吗?

==更新==

请注意,性别和年龄都用于描述一个人。如果我有超过 5 个维度,会发生什么?制作 5 个枚举和 5 个单独的引用?

因为我需要一个测试方法来知道是否有人拥有这样的枚举,所以像这样制作 5 个重载方法是多余的:

有没有办法让它更容易?谢谢!

0 投票
2 回答
2246 浏览

java - 当需要对级别进行分组时,C#中的 EnumSet

在java中我有:

还有一个具有属性的类:

但也有一个 Level 接口将 MyEnum 分组到各个级别:

还使用了 myEnum 上使用的函数,如 clone()、addAll()。我应该如何从 C# 的角度处理这种情况?

0 投票
1 回答
2628 浏览

java - (反)序列化枚举集

有没有一种简单的方法可以用杰克逊序列化和反序列化枚举集?

这给出了以下 XML:

此 XML 无效,因为存在重复的属性。

我还尝试了以下注释:

但这会产生以下错误:

0 投票
1 回答
46 浏览

java - 了解枚举器的枚举集

据我了解,它使用起来会更容易和更清晰,EnumSet而且它Set是专门为与枚举器一起使用而设计的。我的问题是我们是否应该考虑在EnumSet每次需要维护一些枚举器集合时使用。例如,我让他关注枚举:

我需要在方法中使用一些枚举集合:

那么,如果我不关心集合是否已订购,我应该EnumSet<E>每次都使用它来提高性能吗?

0 投票
4 回答
1242 浏览

java - 为什么 EnumSet 有许多重载的“of”方法?

在浏览该EnumSet<E> of方法时,我看到了方法的多个重载实现of

然后是另一个重载方法varargs

当这个可变参数可以处理其他实现时,为什么这个方法会以这种方式重载?这有什么具体原因吗?

我已经阅读了相同的 Javadoc,但找不到任何令人信服的解释。

0 投票
2 回答
491 浏览

api - Java:EnumSet.copyOf——还有改进的余地吗?

我需要从一个集合中创建一个EnumSet 。我决定使用EnumSet#copyOf方法。但是,由于此方法的限制:

我需要确保集合不为空。然后代码变为:

enum Color {RED, GREEN, BLUE}; Set<Color> set = ... // get it from somewhere if (set.isEmpty()) { return EnumSet.noneOf(Color.class); else return EnumSet.copyOf(set);

也许 javac 在确定传递给方法的集合成员的正确类型方面存在真正的限制copyOf,但我无法克服我必须诉诸上述方法来满足空集合的感觉。这是我的问题:

  1. 究竟是什么限制,这里不能接受空集合?

  2. 像这样的方法签名copyOf(Collection<Enum<E>>)会解决这个问题吗?

  3. 如果是,它还会产生什么其他问题?

0 投票
2 回答
3277 浏览

java - 将 EnumSet 转换为整数数组

我有一个 EnumSet 并想将其转换为它的序数值数组。例如:

以及我想要得到的:

0 投票
1 回答
937 浏览

java - 为什么 EnumSet 使用 RegularEnumSet 和 JumboEnumSet 用于不同的大小。它如何影响性能?

在探索 Java EnumSet 时,我遇到了两个包私有类,

  1. 正则枚举集
  2. 巨型枚举集

从 EnumSet 来源:

此外, RegularEnumSet构造函数看起来像:

而在JumboEnumSet构造函数的情况下是:

所以我的疑问是:

  • 为什么它根据大小使用不同的 EnumSet。它如何影响性能?

  • JumboEnumSet 使用元素数组背后的逻辑是什么?

0 投票
1 回答
1678 浏览

java - 将两个 ImmutableEnumSet 与 Guava 联合

我想联合两个ImmutableEnumSets番石榴。这是我的尝试:

该字段ourColorSet无法编译,它失败了

工会是如何正确完成的?