编译错误:变量可能尚未初始化

时间:2012-07-09 01:15:18

标签: java android if-statement scope

全部 - 我已经看过很多与此类似的问题,但似乎无法解决我的问题。我的问题是,在if语句之外声明但在one语句中初始化的变量不会被定义在同一范围内的变量识别。这是我的代码:

  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  

谢谢大家的时间,希望我已经明白了!

2 个答案:

答案 0 :(得分:0)

编译器报告的问题是if (ownersBoa == message)评估为false的可能性和lastP1Boa将无法初始化。将其设置为您声明它的null(或更合适的默认值)。

String lastP1Boa = null; //Declared here

答案 1 :(得分:0)

如果您将第一行更改为String lastP1Boa = null;,它应该修复您的编译错误,但您应该确保处理该变量为null的情况。