2012-01-13 84 views
0

此代码中的编译错误,如何修复此java代码?此代码中的汇编错误

有人知道如何解决这个问题吗?和label284;给出了一些问题。

引擎收录:http://pastebin.com/gWKwnqg5

图片:http://i.imgur.com/OwbdR.png

private List<int[]> getDataByAverage() 
    { 
    int i = this.money; 
    Object localObject1 = new ArrayList(); 
    if (this.num != 1) 
    { 
     for (int j = 0; j < this.num; j++) 
     ((List)localObject1).add(new int[2]); 
     i /= this.num; 
     j = 0; 
     int k = 0; 
     while (k < this.num) 
     { 
     Object localObject2; 
     if (k + 1 != this.num) 
     { 
      int n; 
      if (10.0D * Math.random() <= 5.0D) 
      n = 0; 
      else 
      n = 1; 
      int m = (int)(Math.round(Math.random() * i)/2L); 
      localObject2 = (int[])((List)localObject1).get(k); 
      if (n == 0) 
      m = i - m; 
      else 
      m = i + m; 
      localObject2[0] = m; 
      j += ((int[])localObject1.get(k))[0]; 
     } 
     else 
     { 
      localObject2 = new BigDecimal(String.valueOf(this.money)); 
      BigDecimal localBigDecimal = new BigDecimal(String.valueOf(j)); 
      ((int[])localObject1.get(k))[0] = ((BigDecimal)localObject2).subtract(localBigDecimal).intValue(); 
     } 
     if (((int[])localObject1.get(k))[0] >= 0) 
     { 
      k++; 
      continue; 
     } 
     localObject1 = getDataByAverage(); 
     break label284; 
     } 
     localObject1 = localObject1; 
    } 
    else 
    { 
     int[] arrayOfInt = new int[2]; 
     arrayOfInt[0] = this.money; 
     ((List)localObject1).add(arrayOfInt); 
     localObject1 = localObject1; 
    } 
    label284: return (List<int[]>)(List<int[]>)localObject1; 
    } 
+1

它帮助,如果你告诉我们是什么错误了很多。 – 2012-01-13 08:26:00

+0

这是图像:http://i.imgur.com/OwbdR.png – xAnGz 2012-01-13 08:29:28

+0

你打开.apk? – Siten 2012-01-13 08:43:22

回答

1

我猜带标签的使用摆脱多的支持或while循环。你必须在你使用它的地方上面声明标签。 你可以检查here

你必须在使用前移动label284:

很可能是申报一个标志,我不知道

编辑的方法:这个方法的方法,把括号在整个if (this.num != 1) else { }程序。然后在它之前定义label284:。 显然,中断标签将结束语句。有关详情,请here

0

申报localObject1作为List而不是一个Object。这应该解决这个错误。

1

尝试:

private List<int[]> getDataByAverage() 
    { 
     int i = this.money; 
     Object localObject1 = new ArrayList(); 
     if (this.num != 1) 
     { 
      for (int j = 0; j < this.num; j++) 
       ((List)localObject1).add(new int[2]); 
      i /= this.num; 
      j = 0; 
      int k = 0; 
      Object localObject2; 
       if (k + 1 != this.num) 
       { 
        int n; 
        if (10.0D * Math.random() <= 5.0D) 
         n = 0; 
        else 
         n = 1; 
        int m = (int)(Math.round(Math.random() * i)/2L); 
        localObject2 = (int[])((List)localObject1).get(k); 
        if (n == 0) 
         m = i - m; 
        else 
         m = i + m; 
        localObject2= m; 
        j += ((int[])((List<int[]>) localObject1).get(k))[0]; 
       } 
       else 
       { 
        localObject2 = new BigDecimal(String.valueOf(this.money)); 
        BigDecimal localBigDecimal = new BigDecimal(String.valueOf(j)); 
        ((int[])((List<int[]>) localObject1).get(k))[0] = ((BigDecimal)localObject2).subtract(localBigDecimal).intValue(); 
       } 
       if (((int[])((List<int[]>) localObject1).get(k))[0] >= 0) 
       { 
        k++; 

       } 
       localObject1 = getDataByAverage(); 

      localObject1 = localObject1; 
     } 
     else 
     { 
      int[] arrayOfInt = new int[2]; 
      arrayOfInt[0] = this.money; 
      ((List)localObject1).add(arrayOfInt); 
      localObject1 = localObject1; 
     } 
     return (List<int[]>)(List<int[]>)localObject1; 
    }