2012-02-16 9 views
0

オブジェクトを決議:私は式の型にエラーが配列型でなければなりませんが、それは次のコードで

エラーエラーが発生しました。ここ

public class ColorTableDialog extends Dialog 
    implements View.OnClickListener 
{   
    public ColorTableDialog(Context paramContext) 
     { 
     super(paramContext); 
     requestWindowFeature(1); 
     Object localObject = new int[16]; 
     } 

     ColorTableDialog(Context paramContext) 
      { 
      super(paramContext); 
      requestWindowFeature(1); 
      Object localObject = new int[16]; 
      localObject[0] = -1; 
      localObject[1] = -4144960; 
      localObject[2] = -8355712; 
      localObject[3] = -16777216; 
      localObject[4] = -65536; 
      localObject[5] = -8388608; 
      localObject[6] = -256; 
      localObject[7] = -8355840; 
      localObject[8] = -16711936; 
      localObject[9] = -16744448; 
      localObject[10] = -16711681; 
      localObject[11] = -16744320; 
      localObject[12] = -16776961; 
      localObject[13] = -16777088; 
      localObject[14] = -65281; 
      localObject[15] = -8388480; 
      this.mColors = ((I)localObject); 
      setContentView(main); 
      localObject = (ScrollView)findViewById(main); 
    } 
} 

配列型である必要がありますが、Objectに解決されます。

実際、ソースコードが失われました。私はこのコードを逆コンパイルし、このエラーが発生しました。あなたは、静的な型Objectを持っているlocalObjectを宣言している、ここで

Object localObject = new int[16]; 

答えて

1

私はあなたの問題は、この行であることを信じています。実際にはintの配列を参照していますが、コンパイラはその型がObjectであることを覚えています。あなたはその後、

localObject[0] = -1; 

などを言う際に、コンパイラは、唯一localObjectObject、ないint[]であることを覚えています。つまり、Stringまたはのようなものを参照していないことはわかりません。この場合、中カッコを適用することはできません。 int[]するlocalObjectのタイプを変更し、この問題を解決するには

は、そのように

int[] localObject = new int[16]; 

のように、コンパイラは、intの配列だということを覚えて、すべてがちょうど偉大うまくいきます。

もっと一般的には、そうしないと良い理由がない限り、できるだけ具体的な変数を変数に与えるのが良い考えです。

希望すると便利です。

関連する問題