全部 - 我已经看过很多与此类似的问题,但似乎无法解决我的问题。我的问题是,在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
谢谢大家的时间,希望我已经明白了!
答案 0 :(得分:0)
编译器报告的问题是if (ownersBoa == message)
评估为false
的可能性和lastP1Boa
将无法初始化。将其设置为您声明它的null
(或更合适的默认值)。
String lastP1Boa = null; //Declared here
答案 1 :(得分:0)
如果您将第一行更改为String lastP1Boa = null;
,它应该修复您的编译错误,但您应该确保处理该变量为null
的情况。