2016-12-13 67 views
-4

.jar库中提取类,并将这些类反编译为.java文件。现在,当我尝试重新编译Java文件,我得到一个错误,对此我无法解决,这里是代码:无法修复反编译的java文件中的错误,可能的修复?

private void d(int paramInt) 
{ 
    int i1 = paramInt; 
    if (this.v) 
    { 
     i1 = paramInt;paramInt = this; 
     if (this.r == 4) { 
      paramInt.r = 0; 
     } 
     paramInt.q[paramInt.r] = i1;paramInt.r += 1;paramInt.s.clear();i1 = 0; 
     break label78; 
     paramInt.s.add(Integer.valueOf(paramInt.q[i1]));i1++; 
     label78: 
     for (i1 < paramInt.q.length; paramInt.s.size() > 2; paramInt.s.addAll(paramInt.t)) 
     //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ where the error occurs 
     { 
      paramInt.t.clear(); 
      for (i1 = 0; i1 + 2 < paramInt.s.size(); i1++) 
      { 
       int i5 = ((Integer)paramInt.s.get(i1 + 2)).intValue();int i4 = ((Integer)paramInt.s.get(i1 + 1)).intValue();int i3 = ((Integer)paramInt.s.get(i1)).intValue();int i2 = paramInt;int i6 = a(i3, i4);paramInt.t.add(Integer.valueOf(i2 = a(i2 = b(i2 = b(i3, i4), i5), i6))); 
      } 
      paramInt.s.clear(); 
     } 
     i1 = ((Integer)paramInt.s.get(0)).intValue(); 
    } 
    if (this.u != i1) 
    { 
     if (this.o != null) 
     { 
      this.o.onImageRecognitionResult(i1); 
     } 
     this.u = i1; 
    } 
} 

这是我获得当我编译通过命令行的文件:

C:\Users\oblivion\Desktop\EADMatching.jar.src\com\arlab\imagerecognition>javac A 
Rmatcher.java 
ARmatcher.java:385: error: > expected 
     for (i1 < paramInt.q.length; paramInt.s.size() > 2; paramInt.s.addAll(para 
mInt.t)) 
           ^
ARmatcher.java:385: error: not a statement 
     for (i1 < paramInt.q.length; paramInt.s.size() > 2; paramInt.s.addAll(para 
mInt.t)) 
      ^
2 errors 

如何解决?

+0

答案是有错误'ARmatcher.java:385:错误:不是statement'。 for循环的第一部分应该是一个声明,设置i1的值。 – Josh

回答

1
for (i1 < paramInt.q.length; paramInt.s.size() > 2; paramInt.s.addAll(paramInt.t)) 

这是for循环,是造成问题,它比较for循环下面几行:

for (i1 = 0; i1 + 2 < paramInt.s.size(); i1++) 

你可以看到,第一个循环已经完全不正确的语法。 Java文档介绍了正确的循环语法:

Java Documentation