2013-03-24 1 views
-5

Моя проблема заключается в том, что я сделал arraylist, используя case, поэтому значения условные, но компилятор жалуется, что у меня есть «осиротевший случай». Зачем?Дело в Arraylist жалуется на «осиротевший случай»

ArrayList<Integer> object = new ArrayList<Integer>();{ 
     case objid == 1:{ 
     object.add(objnum); 
     object.add(objx); 
     object.add(objy);} 
+5

Вы имели в виду 'if' вместо' case'? – nkr

+0

ohh, так должно быть, если? Хорошо спасибо: D, который решил мою проблему, я думаю, ^^ – minisurma

+0

sum1 только что сказал мне раньше, я должен использовать случай, но okies :) – minisurma

ответ

4

Вы не можете иметь 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 без каких-либо mpare это до. В этом смысле оператор case не имеет инструкции родителя switch, поэтому Java говорит, что это осиротевший.

Вы можете изменить свой код:

if (objid == 1) { 
    object.add(obnum); 
    object.add(objx); 
    object.add(objy); 
} 

Для получения дополнительной информации о switch заявлении, попробуйте this document.

+0

Ty, действительно хороший ответ, но я просто удалил весь этот список. Я такой тупой! В любом случае, спасибо.. – minisurma

1
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).

0
ArrayList<Integer> object = new ArrayList<Integer>(); 
    switch (objid) { 
     case 1: 
     { 
     object.add(objnum); 
     object.add(objx); 
     object.add(objy);} 
     } 
Смежные вопросы