[英]Are empty strings allowed as enum members in Java
我在一些舊代碼上遇到了問題。 一張票要求我寫一個腳本來測試一個過程的有效性。 但是,運行腳本時,我總是收到此異常:
java.lang.IllegalArgumentException: No enum const class edu.cmu.s3.common.enums.RegistrationStatus.;
作為記錄,使用的數據庫是一個舊的Ingres舊系統,因此空值表示為空字符串-非常漂亮,我必須添加。
無論如何,它看起來就像每當遇到一個空字符串時,都會在創建枚舉時失敗。 我檢查了枚舉,但是它包含此成員:
BLANK("", "Blank")
這會讓我認為空字符串確實是有效的參數,但看起來卻不是。
CAN枚舉可以使用空字符串作為參數,還是我需要更新比最初設想的更多的舊代碼?
謝謝您的幫助
空字符串是枚舉構造函數的有效參數 -但這不是有效的枚舉名稱 。
每個枚舉值名稱都必須是有效的Java標識符。
如果您使用Enum.valueOf(String)
將數據庫中的Strings
解析為Enums
,那么您的問題是valueOf
鍵脫離了Enum
名稱本身,即BLANK
。
這將為您工作: Enum.valueOf( "BLANK" )
但不是: Enum.valueOf( "" )
如果你想解析Enums
基於pased到其他一些領域Enum
的構造函數,你就必須自己編寫的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.