ArrayIndexOutOfBoundsException を時折生成する Java (Android) のコードがあります。
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" };
質問の本質は、配列のサイズを超えた場合に、データの別のソースに正常にデフォルト設定することです。
私は何かが欠けているに違いない。これは、文字列をデフォルトの文字列に設定する間違った方法ですか?
考えられるあらゆる場所で解決策を探しましたが、上記のロジックにいくつかの基本的な欠陥が欠けているのではないかと心配しています。
ヘルプや提案をいただければ幸いです。