小编Jos*_*ker的帖子

从字符串构造函数获取枚举值

在Java中,我试图从字符串中获取枚举值.

比如我得到了:

MESSENGERINIT("@L")

这也是枚举:

private String header;

private ServerPackets(String header) 
{
    this.header = header;
}

public String getHeader()
{
    return this.header;
    //more code here.
}   
Run Code Online (Sandbox Code Playgroud)

但如果我尝试使用:

System.out.println("[" + ServerPackets.valueOf(header) + 
    "] - Received unregistered header " + 
    Base64Encoding.decode(header) + "(" + header + ") with body " + 
    connection.reader.toString());
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

java.lang.IllegalArgumentException: No enum constant 
com.kultakala.communication.ServerPackets.@L
    at java.lang.Enum.valueOf(Unknown Source)</code>
Run Code Online (Sandbox Code Playgroud)

错误消息的含义是什么?我做错了什么?

java enums

0
推荐指数
1
解决办法
2658
查看次数

标签 统计

enums ×1

java ×1