问题标签 [enum-map]
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 - EnumMap.containsValue(null) 返回真 JDK 7
我发现了一个奇怪的行为。我正在使用JDK 1.7
. 当我打印map.containsValue(null)
true
尽管我的 MAP 中没有任何空值,但它会返回。
java - Why EnumMap internal arrays are transient
Enum maps are represented internally as arrays. K[] keyUniverse array of keys and Object[] vals array of values. These arrays are transient. Can you tell me why?
java - 在 java 中迭代 EnumMap 有什么更好的方法?
假设我已将枚举和相应的 emummap 声明为:
我想迭代MyEnumMap
,例如,只是为了Entry
逐个打印。
在以下情况下,迭代键的最佳方法(最快)是什么:
- 当确保每个常量 in
MyEnum
是一个 key inMyEnumMap
- 当每个常量
MyEnum
可能是也可能不是MyEnumMap
我想使用MyEnumMap.keySet()
或在 foreach 循环之间进行选择MyEnum.values()
。任何其他方法都是最受欢迎的。
java - Java 多线程套接字客户端/服务器:发送和接收 Enummap 对象
首先,它是一个JavaFX
具有经典 MVC 架构的应用程序。此应用程序掷骰子并显示它们。目标是将它们展示给几个客户。我正在使用带有套接字的多线程“回声”服务器来处理客户端。由于在 JavaFX 中我们不能直接通过套接字发送节点,所以我决定发送由客户端生成的参数,然后客户端将它们发送到服务器,以便它可以将参数回显给所有连接的客户端。
下面是它的工作原理 :
首先,创建主服务器线程。它创建一个ServerSocket
while循环,创建一个新线程来处理连接的客户端。这个主服务器线程有 3 个方法:2 个将跟踪连接的客户端,1 个将传入参数发送到所有连接的客户端。
这是线程处理客户端:
现在在客户端。主应用程序有一个控制器,它将获取两个字段的值并将它们存储在下面Enummap
然后将其发送到以下线程处理与服务器的连接。
客户端线程(至极连接到服务器)
一个典型的场景是这样的:启动服务器 > 启动客户端(连接成功) > 用户按下滚动。当用户按下roll时,控制器创建的一个enummap中存储了2个值,控制器通过send()方法将此enummap转发给客户端线程;并且此方法将枚举映射写入对象输出流。
问题发生在下一步。服务器端处理客户端连接的线程从流中接收枚举映射
但它似乎无法将其转换为 Enummap 并引发异常
java.lang.ClassCastException:java.io.ObjectStreamClass 不能转换为 java.util.EnumMap
在 java.lang.Thread.run(未知来源)
我究竟做错了什么 ?
java - 初始化 EnumMap 的 Map
我需要在尝试组织 gui 小部件的 JavaFX 应用程序中初始化以下私有成员,但是我不知道正确的语法,请有人告诉我正确的语法:
这是我用于 EnumMap 的枚举
这是我尝试使用此地图或基于服务名称键的EnumMaps组织的小部件的选择,因此以下 4 个复选框和标签的列表属于一起,(我有类似的 JavaFX 小部件用于服务 2 等等。
这是我尝试使用 JavaFX 小部件初始化的私有成员
我可以使用以下方法初始化顶级空 mServiceWidgetMap:
而且我知道我需要将 EnumMaps 初始化为 new EnumMap<>(Connection.class); 但我还需要将成对的小部件放在这些 EnumMaps 的值大小中,我对如何做到这一点感到困惑。
但是我不知道如何初始化 enumMap 值对。非常感谢语法帮助。
编辑 经过一段时间的努力,我想出了以下方法,但肯定必须有一种更简单的方法,比如双括号初始化或其他一些不太冗长的方法。
java - EnumMap 类型安全吗?
[我投票决定为社区重新开放这个。问题Map.get(Object key) 不是(完全)通用的原因是什么确实确定了问题的根本原因。但对我来说,Stack Overflow 是关于回答问题、访问工作示例代码和支持 API 使用的特定实例——而不是关于创建唯一根本原因的规范。我找不到另一个帖子,可能是因为它的标题。创建枚举是为了提供命名常量的安全替代方案。这个问题破坏了这个好处——没有在 API 中提及,也没有编译器警告。为什么将安全级别降低到命名常量以下?对于枚举用户来说,这个问题很有用——它在谷歌上排名第一。]
这应该编译吗?确实如此,即使我从使用 EnumAlpha 类型初始化的 enumMap 中获取了不同类型 (EnumDelta) 的枚举成员。我认为作为泛型类型,EnumMap 将保证 EnumAlpha 的类型安全。
程序输出:
无效的
java - Java中有类似嵌套枚举的东西吗?
我想做一个 Country 枚举,我可以从中访问它的州,我该怎么做?
像这样的东西:
java - 如何将 hashmap 或 enumMap 与 thymeleaf 一起使用?
我想将 EnumMap 与 Thymeleaf 一起使用。
枚举映射:
Map<MyEnum, Integer> enumMap = new EnumMap<>(MyEnum.class);
这可能是 HashMap 而不是 EnumMap。
我的枚举:
我的控制器返回这个模型:
我的脚本:
但如果我运行它,enumMap 如下所示:
我想如下:
怎么做?
java - 如何使用番石榴初始化空的 ImmutableEnumMap?
我有一个Map<ProcessInfoEnum, String>
作为参数的构造函数。所以我NO_OPERATION
用空的不可变映射初始化变量,如下所示。
现在,由于一些设计更改,我已将构造函数更改EnumMap
为如下所示使用:
现在我如何编写相同的等效行,NO_OPERATION
但是ImmutableEnumMap
它可以初始化空的不可变枚举映射?
由于ImmutableEnumMap
是包私有类,所以我不能这样做ImmutableEnumMap.of()
。还有其他方法吗?
java - 为什么 EnumMap 实现检查键的超类?
从上述方法的最后一行可以看出,为什么 EnumMap 实现会检查键的超类?如果没有任何东西可以从枚举中得到,为什么需要这个检查?