2017-08-25 97 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读为土耳其单词具有较低的情况下,像(注意元音的上限没有点),这将使得应用程序崩溃,因为你没有在枚举声明这样一个值...