2012-01-13 105 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; 
    }