最近,我在一个项目中看到了很多类似的代码块,这些代码块的编写方式如下:
String usedAlphabet = "x3w4tnu34urgbgierg";
byte c = // (something initialized earlier)
return usedAlphabet[(int)(c / 16)];
现在,访问相应数组时使用
(int)
强制转换的原因可能是什么?在我看来,这似乎是多余的,但我可能错了,或者我可能缺少有关类型转换机制的知识。
最佳答案
如您所知,演员表是多余的。它有助于提高可读性吗?也许取决于上下文。可以做些什么来真正帮助这种“非显而易见的数组索引”的可读性?我告诉你的好名字(当然,作者应该找到能表达他意图的正确名字,我在这里已经编好了这些名字):
int sectionSize = 16;
String usedAlphabet = "x3w4tnu34urgbgierg";
byte sectionIndex = // (something initialized earlier)
int alphabetIndex = sectionIndex / sectionSize;
return usedAlphabet[alphabetIndex]; // not so puzzling anymore