gpt4 book ai didi

java - 检查枚举值索引

转载 作者:太空宇宙 更新时间:2023-11-04 07:43:04 25 4
gpt4 key购买 nike

我在检查枚举值的索引时遇到问题,我有一个带有可变参数整数的枚举,如果该整数大于一并且是可替换项,那么当我获得下一个索引时,我会将其增加一。但是,当增量后没有另一个整数时,游戏就会崩溃,在过去的半个小时左右的时间里我一直在尝试解决这个问题,我似乎无法检查它是否是枚举中的最后一个索引。我知道这是一个非常本地化的问题,但我需要一些帮助。

代码:

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还是0,但就像我说的,我似乎无法弄清楚。提前致谢。

最佳答案

你想做这样的事情吗?

private int getNextId(Food food, int id) {
if (food.getType().equals(REPLACE)) {
int n = food.getIds().length;
for (int i = 0; i < n; i++) {
if (food.getIds()[i] == id && (i+1) < n) {
return food.getIds()[i + 1];
}
}
}
return -1;
}

上述方法中,只有下一个Id存在才返回,否则返回-1。

关于java - 检查枚举值索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15742251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com