是否允许空字符串作为Java中的枚举成员

rye*_*3ad 3 java ingres

我在使用一些遗留代码时遇到了一些问题.一张票要我写一个测试过程有效性的脚本; 但是,当脚本运行时,我不断收到此异常:

 java.lang.IllegalArgumentException: No enum const class edu.cmu.s3.common.enums.RegistrationStatus.;
Run Code Online (Sandbox Code Playgroud)

对于记录,正在使用的数据库是旧的Ingres遗留系统,因此空值表示为空字符串 - 非常漂亮,我必须添加.

无论如何,看起来每当遇到空字符串时,它就会在创建枚举时失败.我检查了枚举,但它包含了这个成员:

BLANK("", "Blank")
Run Code Online (Sandbox Code Playgroud)

这会让我觉得空字符串确实是一个有效的参数,但它看起来并非如此.

CAN枚举使用空字符串作为参数,还是我需要更新比我最初假设更多的遗留代码?

谢谢您的帮助

Jon*_*eet 9

空字符串是枚举构造函数的有效参数 - 但它不是有效的枚举名称.

每个枚举值名称必须是有效的Java标识符.