我的问题是,我使用case
作了一个arraylist,所以这些值是有条件的,但是编译器抱怨我有一个“孤立案例”。为什么?Arraylist中的案件投诉“孤立案件”
ArrayList<Integer> object = new ArrayList<Integer>();{
case objid == 1:{
object.add(objnum);
object.add(objx);
object.add(objy);}
我的问题是,我使用case
作了一个arraylist,所以这些值是有条件的,但是编译器抱怨我有一个“孤立案例”。为什么?Arraylist中的案件投诉“孤立案件”
ArrayList<Integer> object = new ArrayList<Integer>();{
case objid == 1:{
object.add(objnum);
object.add(objx);
object.add(objy);}
你不能有一个case
声明没有switch
声明。
一个switch
声明如下所示:
switch (var) {
case 0:
doSomething();
break;
case 1:
somethingElse();
break;
default:
anotherThing();
break;
}
为(大约)相当于
if (var == 0) {
doSomething();
} else if (var == 1) {
somethingElse();
} else {
anotherThing();
}
所以,就像它是没有意义说
if (0) {
doSomething();
} // ...
如果没有任何协议,就没有任何意义将其与改为。在这个意义上,case
声明没有父项switch
声明,所以Java说它是孤儿。
你可以更改您的代码:对switch
声明
if (objid == 1) {
object.add(obnum);
object.add(objx);
object.add(objy);
}
欲了解更多信息,请this document。
Ty,真的很好的答案,但我刚刚删除了整个列表。我很愚蠢!不管怎样,谢谢你.. – minisurma 2013-03-24 20:06:30
case objid == 1:{
object.add(objnum);
object.add(objx);
object.add(objy);
}
这是永远不会有效的Java。你的意思是if
,像这样?
if (objid == 1) {
object.add(objnum);
object.add(objx);
object.add(objy);
}
要回答你的第二个问题,ArrayList
通常应该只用于当你不再需要它的成员的直接访问,因而需要像x = object.get(3)
。
ArrayList<Integer> object = new ArrayList<Integer>();
switch (objid) {
case 1:
{
object.add(objnum);
object.add(objx);
object.add(objy);}
}
您是不是指'if'而不是'case'? – nkr 2013-03-24 19:56:04
哦,所以它应该是如果?好吧谢谢:D解决了我的问题,我猜^^ – minisurma 2013-03-24 19:58:01
sum1刚刚说过我以前我应该用案例,但okies :) – minisurma 2013-03-24 19:58:55