如何创建包含Integer类型变量的Java枚举类?附示例
Java枚举类包含Integer类型变量的正确实现
你给出的示例存在语法错误:Java枚举常量的命名必须遵循标识符规则,不能以纯数字作为枚举常量名。以下是符合语法规范、满足你需求的实现方案:
基础实现
@AllArgsConstructor @Getter public enum Test { TEST_1(1, "Test1"), TEST_2(2, "Test2"); // Integer类型的变量,存储数字标识 private final Integer code; // 对应的描述值 private final String value; }
说明
- 枚举常量名
TEST_1、TEST_2符合Java标识符命名规范(大写下划线分隔) - 通过Lombok的
@AllArgsConstructor自动生成包含code和value的全参构造方法 @Getter自动生成两个字段的getter方法,方便外部获取值
扩展:根据Integer值获取枚举实例
如果需要根据传入的Integer类型code值快速找到对应的枚举实例,可以添加一个静态工具方法:
public static Test getByCode(Integer code) { for (Test test : values()) { if (test.getCode().equals(code)) { return test; } } throw new IllegalArgumentException("无效的code值: " + code); }
使用示例:
Test test = Test.getByCode(1); System.out.println(test.getValue()); // 输出 Test1
内容的提问来源于stack exchange,提问作者hamza
相关产品推荐
相关产品推荐

