我想将< code>socket.getSocket()和< code > socket status . getsocketstatus()存储在< code>HashMap中。但是< code>hMap.put(socket.getSocket()、socket status . getsocketstatus());引发< code > NullPointerException 。我该如何解决这个问题?
下面是我的两个班级:
SocketInfoMap.java
package vd.socket.map;
import java.util.HashMap;
import java.util.Map;
public class SocketInfoMap {
public enum Socket {
ONE("01"), TWO("02"), THREE("03"), FOUR("04"), FIVE("05"), SIX("06"), SEVEN("07"), EIGHT("08");
private static Map<Socket, String> sMap = new HashMap<Socket, String>();
private String socket;
private Socket(String socket) {
this.socket = socket;
}
public String getSocket() {
return socket;
}
static {
for (Socket socket : Socket.values()) {
sMap.put(socket, socket.getSocket());
}
}
}
public enum SocketStatus {
LIFTED(1), NOT_LIFTED(0);
private static Map<SocketStatus, Integer> stMap = new HashMap<SocketStatus, Integer>();
private int socketStatus;
private SocketStatus(int socketStatus) {
this.socketStatus = socketStatus;
}
public int getSocketStatus() {
return socketStatus;
}
static {
for (SocketStatus socketStatus : SocketStatus.values()) {
stMap.put(socketStatus, socketStatus.getSocketStatus());
}
}
}
private static Map<String, Integer> hMap = new HashMap<String, Integer>();
public SocketInfoMap(Map<String, Integer> hMap) {
SocketInfoMap.hMap = hMap;
}
public Map<String, Integer> gethMap() {
return hMap;
}
}
SocketMapTest.java
package vd.socket.map;
import java.util.Map;
import vd.socket.map.SocketInfoMap.*;
public class SocketMapTest {
private static Map<String, Integer> hMap;
public static void main(String[] args) {
SocketStatus socketStatus = SocketStatus.LIFTED;
Socket socket = Socket.TWO;
if ((socket == Socket.TWO) && (socketStatus == SocketStatus.LIFTED)) {
hMap.put(socket.getSocket(), socketStatus.getSocketStatus());
System.out.println(hMap);
} else
hMap.put(socket.getSocket(), socketStatus.getSocketStatus());
System.out.println(hMap);
}
}
初始化主方法内的hMap..浏览此链接,希望它能帮助您。。
如何将枚举类型存储到映射中?
我希望使用枚举将值映射到数据库表行: 我想使用status=active从FE中搜索和获取状态,但只存储到数据库行字段中的符号A。 我如何将枚举键A存储到数据库中?
我正在尝试使用put方法将arraylist存储在hashmap中。我在下一步中清除了列表,以便在下一次迭代中添加下一组值。一旦清除列表,地图中的值也会被清除。虽然我在清理清单之前已经把清单放在地图上了。 sysout打印{key=[]} 有人请让我清楚如何坚持hashmaphash地图。
问题内容: 我想在CoreData中存储托管对象的枚举状态 最后一步是将StateFullManagedObject的状态变量转换为ObjStatus以进行直接比较,这对我不起作用。例如,我不能在Int16和Int16枚举之间使用==运算符。我得到的编译时错误是 Int16不能转换为’MirrorDisposition’ 。请参阅以下条件: 如何在Int16和枚举之间进行比较/分配? 问题答案:
问题内容: 给出测试代码: 我想检查两个给定的枚举是否包含相同的值。 也许有更优雅的方式做到这一点? 问题答案: 建立一组名称: 为此(考虑将以上内容提取到方法中)。 然后:
我有两个枚举,它们实现了如下相同的接口:- 名为SystemA和SystemB的两个枚举正在实现此接口。 我想要像这样应用getConfigFunction:- 但它会抛出编译时错误,因为形成的流的类型为:Config[]。所以我尝试了以下修改:- 但这也失败了,因为我还需要修改forEach部分。有人能帮忙吗?我该如何修改forEach部分,或者我该如何使用map()/flatmap()函数,这