gpt4 book ai didi

java - 匿名数组索引而不是 switch 语句?

转载 作者:行者123 更新时间:2023-12-02 04:40:49 26 4
gpt4 key购买 nike

在 Java 中,我发现以下代码比相应的庞大 switch 语句更简洁、更易于维护:

try {
selectedObj = new Object[] {
objA,
objB,
objC,
objD,
}[unvalidatedIndex];
} catch (ArrayIndexOutOfBoundsException e) {
selectedObj = objA;
}

反对

switch (unvalidatedIndex) {
case 0:
selectedObj = objA;
break;

case 1:
selectedObj = objB;
break;

case 2:
selectedObj = objC;
break;

case 3:
selectedObj = objD;
break;

default:
selectedObj = objA;
}

前者被认为是可接受的做法吗?我知道这不是最有效的,因为它涉及分配数组和捕获异常。当 unvalidatedIndex 超出范围时(尽管异常已处理),会导致不良情况吗?

如果可能的话,你会建议一些更干净的东西吗?

最佳答案

你的第一种方法很好。

但是,最好先检查索引:

Object[] arr = new Object[] { ... };

if (i < 0 || i >= arr.length)
i = 0;
selectedObj = arr[i];

关于java - 匿名数组索引而不是 switch 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6253176/

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