我目前正在开发一个程序,任何时候我调用 Products[1] 都没有空指针错误,但是当我调用 Products[0] 或 Products[2] 时,我得到一个空指针错误。但是,我仍然得到 2 个不同的输出,几乎就像数组中有 [0] 和 1 或 1 和 2。这是我的代码
FileReader file = new FileReader(location);
BufferedReader reader = new BufferedReader(file);
int numberOfLines = readLines();
String [] data = new String[numberOfLines];
Products = new Product[numberOfLines];
calc = new Calculator();
int prod_count = 0;
for(int i = 0; i < numberOfLines; i++)
{
data = reader.readLine().split("(?<=\\d)\\s+|\\s+at\\s+");
if(data[i].contains("input"))
{
continue;
}
Products[prod_count] = new Product();
Products[prod_count].setName(data[1]);
System.out.println(Products[prod_count].getName());
BigDecimal price = new BigDecimal(data[2]);
Products[prod_count].setPrice(price);
for(String dataSt : data)
{
if(dataSt.toLowerCase().contains("imported"))
{
Products[prod_count].setImported(true);
}
else{
Products[prod_count].setImported(false);
}
}
calc.calculateTax(Products[prod_count]);
calc.calculateItemTotal(Products[prod_count]);
prod_count++;
这是输出:
imported box of chocolates
1.50
11.50
imported bottle of perfume
7.12
54.62
这个印刷作品System.out.println(Products[1].getProductTotal());
这变成了一个空指针System.out.println(Products[2].getProductTotal());
这也变成了一个空指针System.out.println(Products[0].getProductTotal());