java反编译后得到的源码 很混乱 怎么办

private static List generateByChance(int ai[]) { int j; Random random; ArrayList arraylist; List list; int i1; int j1; int k1; int i = 0; j = ai.length; if (j != 10) throw new IllegalArgumentException("chances' length must be 10 "); int k = 0; do { if (k >= j) { if (i != 100) throw new IllegalArgumentException("the sum of chances must be 100 "); break; } int l = ai[k]; i += l; k++; } while (true); long l1 = System.currentTimeMillis(); random = new Random(l1); arraylist = new ArrayList(); list = MyApplication.getInstance().getAllQuestions(); i1 = list.size(); j1 = 0; k1 = 1;_L2: int i2; int j2; if (j1 >= j) return arraylist; i2 = ai[j1]; if (i2 != 0) break; /* Loop/switch isn't completed */ j2 = k1;_L3: j1++; k1 = j2; if (true) goto _L2; else goto _L1_L1: ArrayList arraylist1 = new ArrayList(); String s = String.valueOf(j1 + 1); String s1 = (new StringBuilder(s)).append(".").toString(); int l2 = 0; do { if (l2 >= i1) { if (arraylist1.size() < i2) throw new IllegalArgumentException("the chance must be less than the max count!"); break; } Question question = (Question)list.get(l2); boolean flag; if (question.getLabel().startsWith(s1)) flag = arraylist1.add(question); l2++; } while (true); int i3 = 0; do { int j3 = arraylist1.size(); int k2 = random.nextInt(j3); Question question1 = (Question)arraylist1.get(k2); if (!arraylist.contains(question1)) { boolean flag1 = arraylist.add(question1); Object obj = arraylist1.remove(k2); question1.setExamIndex(k1); question1.setSelectedIndex(-1); k1++; i3++; } } while (i3 != i2); j2 = k1;  goto _L3 if (true) goto _L2; else goto _L4_L4: }得到这个代码 怎么还有goto语句的呢??

不是每个反编译都能完美的,用eclipse规范下代码,然后不符合的语法的方法,自己换成适合当前jdk版本支持的就可以了,反编译还是得花力气在代码的上,偷懒有限啊。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-14
反编译器不完善的,手工改……
相似回答