【发布时间】:2010-09-17 06:12:38
【问题描述】:
以下代码无法编译,因为eater 定义了两次:
switch (vegetable) {
case TOMATO:
Eater eater = new Eater(Tomato.class, many parameters);
eater.eat(more parameters);
return true;
case POTATO:
Eater eater = new Eater(Potato.class, many parameters);
eater.eat(more parameters);
return true;
case CARROT:
doSomethingElse();
return true;
}
我应该:
- 使用单独的变量 `tomatoEater` 和 `potatoEater`,使代码更难维护?
- 在 `switch` 之前定义 `eater`,让更多人可以访问它?
- 仅在第一次定义 `eater`,会导致潜在的混淆?
- 添加大括号,让代码更冗长?
- 有更好的主意吗?
【问题讨论】:
-
我真的不想知道 doSomethingElse() 方法的作用。
-
顺便说一句,我看到
{在很长一段时间后换了一个新行...当其他人以与我相同的方式编码时感觉很好:-) -
CurtainDog:哈哈,我发誓这完全是随机的!尼瓦斯:固定 ;-)
标签: java switch-statement