2016-05-27 9 views
-3

私はアンドロイドスタジオでコーディングしています。このメソッドの外部で変数totalCuisine ++にアクセスしたいと思います。また、totalCuisinesはclaassでグローバルに宣言されます。つまり、int totalCuisines = 0です。Javaの同じクラスのメソッドの外側のローカル変数にアクセスするには

これは大きなプログラムの一部であるが、主な問題は、Uの前にここにある、すべてのプログラムの残りの部分が正常に

public class CuisinesFilterDialog extends DialogFragment{ 

    int totalCuisines = 0; 

    ArrayList<CuisinesModel> data = new ArrayList<>(); 

{ 
    private void updateFilterStats() { 

     ArrayList allData = new ArrayList(); 
     if(data != null && data.size() > 0){ 
      for(int i=0; i<data.size(); i++){ 
       if(data.get(i).isSelected()) { 
        allData.add(data.get(i).getName()); 
        totalCuisines++;// I want to access it outside this method 
       } 
      } 
      DataStore.putString(getContext(), ZConstants.SortFilter.KEY_EXTRAS_FILTER_CUISINES, 
        TextUtils.join(",",allData)); 
     }else{ 
      DataStore.putString(getContext(), ZConstants.SortFilter.KEY_EXTRAS_FILTER_CUISINES, 
        ZConstants.EMPTY_STRING); 
     } 
     dismiss(); 
    } 
} 
+0

totalCuisines ++は変数ではありません。 totalCuisinesはプライベートクラスの変数で、++は1回の増分です。クラスの外部からアクセスするには、totalCuisinesをpublic(public int totalCuisines = 0)にするか、またはprivate関数をインクリメントするpublic関数incrementTotalCuisines()を作成します。 totalCuisinesはこのメソッドの外部でアクセス可能であることに注意してください。他のクラスメソッドはこの変数を変更できます。このクラスの外からはアクセスできません。 – JohannisK

答えて

1

totalCuisines++を実行している変数ではありません。それはtotalCuisines+1を意味します。ただし、totalCuisinesにはいくつかの方法でアクセスできます。 totalCuisinesをパブリック変数として宣言する最も簡単な方法。同様に、

public int totalCuisines = 0; 
+0

クラスまたはパッケージからのみアクセスする必要がある限り、「公開」する必要はありません。 ref:http://stackoverflow.com/a/215505/4252352 –

関連する問題