2017-08-25 49 views
0

今天,我的一個用戶因爲一個奇怪的錯誤而讓我的應用在他的設備上崩潰。這是在我的後端結果消息:Java Enum.name()意外結果包含「?」

util.java.MissingResourceException: (Can't find bundle key med?um) 

束鍵被認爲是「中等」,並建立與以下的(僞)代碼:

STAGE stage = something.getStage(); 
String stageValue = stage.name().toLowerCase(); 

其中STAGE是:

public enum STAGE 
{ 
    EASY, 
    MEDIUM, 
    HARD; 
} 

我的印象是name()函數總是返回枚舉的值,因爲它在代碼中是:「MEDIUM」。它如何包含問號?

+3

的問題是,toLowerCase()心不是做你期待什麼它要做的。 – GhostCat

+0

nvm,還沒有看到重複的標籤。 –

回答

1

你需要小心你如何對待低,在Java上的情況下...

像土耳其地方字母表有一種類似的元音你可以找到

İ

見下表

enter image description here

所以你需要明確使用的地區,以便Java可以考慮一些語言especific convertions這種情況下...

MEDIUM讀爲土耳其單詞具有較低的情況下,像(注意元音的上限沒有點),這將使得應用程序崩潰,因爲你沒有在枚舉聲明這樣一個值...