我在檢查枚舉值的索引時遇到問題,如果該整數大於1並且是可替換項,那麼我有一個帶有可變長度整數的枚舉,那麼當我得到下一個索引I增加一個。但是,當增量之後沒有另一個整數時,遊戲崩潰了,我一直試圖在過去的半小時左右想出一個解決方案,我似乎無法檢查它的最後一個索引枚舉。我知道這是一個非常本地化的問題,但我需要一些幫助。檢查枚舉值索引
代碼:
private int getNextId(Food food, int id) {
if (food.getType().equals(REPLACE)) {
for (int i = 0; i < food.getIds().length; i++) {
if (food.getIds()[i] == id) {
return food.getIds()[i + 1];
}
}
}
return -1;
}
枚舉:
private enum Food {
SHRIMP(REMOVE, 3, 315),
LOBSTER(REMOVE, 12, 379),
MANTA_RAY(REMOVE, 22, 391),
MONKFISH(REMOVE, 16, 7946),
MACKREL(REMOVE, 6, 355),
SALMON(REMOVE, 9, 329),
SEA_TURTLE(REMOVE, 22, 397),
SHARK(REMOVE, 20, 385),
SWORDFISH(REMOVE, 14, 373),
TROUT(REMOVE, 7, 333),
TUNA(REMOVE, 10, 361),
TUNA_POTATO(REMOVE, 22, 7060),
CAKE(REPLACE, 4, 1891, 1893, 1895),
CHOCOLATE_CAKE(REPLACE, 5, 1897, 1899, 1901),
PLAIN_PIZZA(REPLACE, 7, 2289, 2291),
MEAT_PIZZA(REPLACE, 8, 2293, 2295),
ANCHOVY_PIZZA(REPLACE, 9, 2297, 2299),
PINEAPPLE_PIZZA(REPLACE, 11, 2301, 2303),
APPLE_PIE(REPLACE, 7, 2323, 2335),
REDBERRY_PIE(REPLACE, 5, 2325, 2333),
MEAT_PIE(REPLACE, 6, 2327, 2331);
private final ConsumableType type;
private final int healAmount;
private final int[] ids;
private Food(ConsumableType type, int healAmount, int... ids) {
this.type = type;
this.ids = ids;
this.healAmount = healAmount;
}
public ConsumableType getType() {
return type;
}
public int getHealAmount() {
return healAmount;
}
public int[] getIds() {
return ids;
}
public String getName() {
return name().toLowerCase().replaceAll("_", " ");
}
}
哦另有說明,我已經嘗試了檢查,如果它是-1或,但就像我說我可以似乎沒有弄明白。先謝謝了。
顯示您的枚舉代碼。 –
已編輯主帖。 – rmcmk
如果只有一個ID,您想從該方法返回什麼? –