java - 在运行时设置 ENUM 值

标签 java arraylist enums

我有一个 ENUM 定义为;

public enum YesNoEnum {
    Y,
    N
}

我将其用于我投票的值(value)观之一。

所以我在循环中使用它(从查询响应中循环对象数组)

person.setVoted(responseArray[1] != null ? YesNoEnum.valueOf((String)responseArray[1]) : null);

我有 setter 作为

public void setVoted(YesNoEnum voted) {
    this.voted = voted;
}

现在,如果 responseArray[1] 的值为 Y/N

如果我 debug/watch responseArray[1] ,它会将类型显示为 YesNoEnum 并将值显示为 "Y" 它说

cannot cast an instance of YesNoEnum to an instance of String

最佳答案

If I debug/watch responseArray[1] , it shows type as YesNoEnum and shows value as "Y" It says

如果我理解正确,responseArray 是枚举YesNoEnum 的数组。

因此,将枚举实例转换为字符串时会出现错误:

(String)responseArray[1]

你可以这样写:

person.setVoted(responseArray[1]);

作为旁注

要处理null,我会将枚举更改为:

public enum YesNoEnum {
    Y,
    N,
    UNKNOWN
}

并写:

person.setVoted(responseArray[1] != null ? responseArray[1] : YesNoEnum.UNKNOWN);

关于java - 在运行时设置 ENUM 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20117456/

相关文章:

java - 当端口存在时获取 javax.comm.NoSuchPortException

java - 为什么setter方法不更新对象?

enums - Dart 如何获取枚举的 "value"

java - Spring DATA JPA + Hibernate - 无法初始化代理 - 修复 : 后没有 session

java - 迭代异步事件,需要传递一个对象

java - 在 java 中使用 ImageIcon 类和 JLabels 创建 .jar 文件

java - arraylist.remove 无法正常工作

java - 随后将元素添加到数组

java - 为什么这个枚举类型没有正确解析?

java - 如何将 Enum 的值与 Enum 方法中 Enum 的所有可能值进行比较并避免丢失 return 语句?