我的問題是,我使用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