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

Java 编译错误:变量可能尚未初始化,java,android,if-statement,scope,Java,Android,If Statement,Scope,所有-我看过很多类似的问题,但似乎无法解决我的问题。我的问题是,在if语句外部声明但在if语句内部初始化的变量不能被定义在同一范围内的变量识别。这是我的密码: String lastP1Boa; //Declared here if (ownersBoa == message) { Spinner houseBoa = (Spinner) findViewById(R.id.houseBoa); String housesBoa = houseBoa.getSelected

所有-我看过很多类似的问题,但似乎无法解决我的问题。我的问题是,在if语句外部声明但在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  

谢谢大家抽出时间,希望我已经说清楚了

编译器报告的问题是,
if(ownersBoa==message)
有可能计算为
false
,并且
lastP1Boa
不会被初始化。在声明时将其设置为
null
(或更合适的默认值)

String lastP1Boa = null; //Declared here

如果将第一行更改为
String lastP1Boa=null
,它应该修复编译错误,不过您应该确保处理该变量为
null

的情况。好的,如果该情况为null,我将确保捕获。非常感谢您的帮助。您的标题和问题描述不正确。该变量可以识别,但编译器告诉您它可能没有初始化heen,这是真的。并非所有编译错误都相同。你一定要看留言,我的错。很抱歉,我在标题上有误导性,但我是android新手,不知道到底发生了什么。