2016-10-05 8 views
0

switch文でグローバル定数を使用します。私はシングルトンの定数は、私はこのコードswitch文で定数式が必要です

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    ColorManager cm = ColorManager.getInstance(this); 
    switch (requestCode) { 
     case cm.blue: { 
     } 
     case cm.red: { 
     } 
     case cm.black: { 
     } 
    } 
} 

を書いた私のHomeActivityで、このように

public static final int blue = 3; 
public static final int red = 5; 
public static final int black = 7; 

ColorManagerと呼ばれる書いたしかし、私は、switch文でエラーが出る:

定数を発現が要求される

T彼は値が最終的には一定しているので、なぜこのエラーが出るのかわかりません。私は似たような話題を見つけましたが、すべてのケースでプロパティが最終として宣言されていませんでした。

+0

使用列挙してみてください。 –

+5

'cm.blue'の代わりに' ColorManager.blue'などを使用します – Blackbelt

+1

javaには定数キーワードはありません。 finalは定数を意味するものではありません。 –

答えて

2

static finalフィールドに静的にアクセスするとコンパイルされます。例えばcase ColorManager.blue:。しようとすると、変数cmからアクセスすると、コンパイラがコンパイル時定数として認識されなくなります。

0

使用ClassName.variableすなわちColorManager.red

0

そのため、このコード

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 

    switch (requestCode) { 
     case ColorManager.blue: { 
     } 
     case ColorManager.red: { 
     } 
     case ColorManager.black: { 
     } 
    } 
} 
関連する問題