簡體   English   中英

是否允許空字符串作為Java中的枚舉成員

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM