【发布时间】:2020-07-27 13:39:55
【问题描述】:
我和 Checkstyle 打交道已经有一段时间了,知道什么是幻数,但是我从来没有遇到过这种方式,它只是一个用于分配数据的开关,但是案例被标记为幻数,我无法制作那些决赛或类似的东西(我知道)。 我创建的程序获取一个随机数(从 0 到 199 的整数)并在开关中使用它,不仅如此,而且 ra.nextInt(200); 中的 200;也是“魔法”。
我的问题是,我如何在不必声明 200 个新变量的情况下防止案例出现幻数?
这是我的代码:
public Basura selectB(final Basura b) {
private Random ra = new Random();
ran = ra.nextInt(200);
switch (ran) {
case 0: b.setName("Funko Roto");
b.setClasification("PL"); break;
case 1: b.setName("Bateria de Laptop");
b.setClasification("B"); break;
case 2: b.setName("Sobras de Comida");
b.setClasification("O"); break;
case 3: b.setName("Clips de Oficina");
b.setClasification("M"); break;
case 4: b.setName("Colcha Deshilachada");
b.setClasification("T"); break;
case 5: b.setName("Disco DVD");
b.setClasification("B"); break;
...
default:b.setName("ERROR");
b.setClasification("E"); break;
}
return b;
}
【问题讨论】:
-
stackoverflow.com/questions/15539435/… 这一篇我已经读过了,但没有多大帮助
-
如何解决案例 x 上的幻数错误?
-
编辑了问题
标签: java maven switch-statement checkstyle magic-numbers