我在 Java (Android) 中有一段代码偶尔会生成 ArrayIndexOutOfBoundsException。
String characterLevel = mCharacterModel.CharacterLevel() >=
MessageModel.CharacterLevels.length ? "Hyperion Overlord" :
MessageModel.CharacterLevels[mCharacterModel.CharacterLevel()];
方法 mCharacterModel.CharacterLevel() 始终为 1 或更多。
MessageModel.CharacterLevels 数组定义如下,包含大约 50 个元素。
public static final String[] CharacterLevels = { "Title", "Title" };
问题的本质是如果超出数组的大小,则优雅地默认为另一个数据源。
我肯定错过了什么。这是将字符串设置为默认字符串的错误方法吗?
我已经在我能想到的所有地方寻找解决方案,但我担心我只是遗漏了上述逻辑中的一些基本缺陷。
任何帮助或建议表示赞赏。