2014-02-17 1 views
-1

Синтаксическая ошибка происходит в «goto», а другая ошибка (_L не может быть разрешена переменной). Я хочу сохранить «goto», но КАК исправить код?Как получить JVM INSTR tableswitch в код?

Код:

public static ArrayList getTemplateList(Context context) { 
    XArraySharedObject xarraysharedobject = getArraySharedObject(context); 
    if (xarraysharedobject.size() != 0) { 
     goto _L2; 
    } else { 
     goto _L1 
    } 

    _L1: 
     int i = 0; 
    _L5: 
     if (i < DEFAULT_TEMPLATES.length) goto _L3; else goto _L2 
    _L2: 
     return xarraysharedobject.getArrayList(); 
    _L3: 
     xarraysharedobject.add(DEFAULT_TEMPLATES[i]); 
     i++; 
     if (true) goto _L5; else goto _L4 
    _L4: 
} 
+0

Что дает Вам идея, что вы можете использовать «goto» в Java-коде? –

+0

Получите лучший декомпилятор. Или узнайте, что означает действие байт-кода. Это довольно простой материал. – kdgregory

+0

Реально, у вас есть какой-то для, do или while цикл здесь. Посмотрев на код в течение нескольких минут, вы узнаете, что. Как только вы отсортируете это, остальные фрагменты _L # могут быть вставлены в строку. –

ответ

0

GOTO является арка Немезида объектно-ориентированное Развитие и не имеет места в Java коде. Вместо этого вы должны создать методы для вызова в каждом конкретном случае или использовать

switch (thing to check) { 
     case 1: 
      //do action 1 
      break; 
     case 2: 
      //do action 2 
      break; 
    } 

Вы должны потратить некоторое время, делая Android учебники и/или изучения языка, если вы новичок в этом - Java

Смежные вопросы