1

すべて-私はこれに似た多くの質問を見てきましたが、私の問題を解決できないようです。私の問題は、ifステートメントの外部で宣言されているが、その内部で初期化されている変数が、それが定義されたのと同じスコープ内の変数によって認識されないことです。私のコードは次のとおりです。

  String lastP1Boa; //Declared here

if (ownersBoa == message) {
    Spinner houseBoa = (Spinner) findViewById(R.id.houseBoa);
    String housesBoa = houseBoa.getSelectedItem().toString();
    Integer lastIntHouseBoa = Integer.parseInt(housesBoa.replaceAll("[\\D]", ""));

    Spinner hotelBoa = (Spinner) findViewById(R.id.hotelBoa);
    String hotelsBoa = hotelBoa.getSelectedItem().toString();
    Integer lastIntHotelBoa = Integer.parseInt(hotelsBoa.replaceAll("[\\D]", ""));


    int intLastP1Boa = lastIntHotelBoa * 1500 + lastIntHouseBoa * 100;
    lastP1Boa = String.valueOf(intLastP1Boa);  } //Initialized here



String p1Total = lastP1Boa; //Error saying that lastP1Boa needs it be initialized  

いつもありがとうございました。うまくいけば、私は自分自身を明確にしました!

4

2 に答える 2

0

コンパイラが報告している問題は、if (ownersBoa == message)評価されてfalse初期lastP1Boa化されない可能性があることです。宣言する場所と同じnull(またはより適切なデフォルト値)に設定します。

String lastP1Boa = null; //Declared here
于 2012-07-09T01:17:23.577 に答える
0

最初の行をに変更するとString lastP1Boa = null;、コンパイルエラーが修正されますが、その変数が。である場合を確実に処理する必要がありますnull

于 2012-07-09T01:18:01.753 に答える