first time in stackoverflow im getting this error and I'm not sure why
Console
Welcome to Retail Review Systems
Enter your id: 100
Enter your password: pass1
Welcome Kathy Hochul , please choose a product to review.
we have the following products for review.
Exception in thread "main"
1. Dell Elite Desk
2. HP HP Desk
3. Motorola Motorola Desk
4. Samsung Samsung Desk
5. Apple Apple Desk
java.lang.NullPointerException: Cannot invoke "pkgRetailReview2.Product.getManufacturer()" because "this.electronics[i]" is null
at prjRetailReview2/pkgRetailReview2.RetailReview.displayProduct(RetailReview.java:113)
at prjRetailReview2/pkgRetailReview2.RetailReview.createReview(RetailReview.java:92)
at prjRetailReview2/pkgRetailReview2.RetailReviewSystem.main(RetailReviewSystem.java:15)
Products class
public class Product {
private int upc;
private String pname;
private String manufacturer;
private float price;
private String desc;
private short year;
public Product() {
super();
this.upc = 0;
this.pname = "";
this.manufacturer = "";
this.price = 0;
this.desc = "";
this.year = 0;
}
// constructor
public Product(int upc, String pname, String manufacturer, float price, String desc, short year) {
super();
this.upc = upc;
this.pname = pname;
this.manufacturer = manufacturer;
this.price = price;
this.desc = desc;
this.year = year;
}
public int getUpc() {
return upc;
}
public void setUpc(int upc) {
this.upc = upc;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public short getYear() {
return year;
}
public void setYear(short year) {
this.year = year;
}
}
RETALREVIEW.java:113
public class RetailReview {
Product electronics[]; //arrays have fixed sizes
Reviewer customers[];
ArrayList reviews; // array list do not have fixed sizes
Scanner keyboard;
short reviewnum;
int selreviewer;
/******************* constructor *******************/
RetailReview()
{
electronics = new Product[10];
customers = new Reviewer[10];
reviews = new ArrayList<Review>();
keyboard = new Scanner(System.in);
reviewnum = 1000;
selreviewer = -1;
}
/****************end constructor********************/
/*****************Load Data*************************/
void loadData()
{
//Working Variables
short year = 2019, rid = 100;
//Product Info
electronics[0] = new Product(100, "Elite Desk", "Dell", 400.00f, "Desktop Computer", year);
electronics[1] = new Product(200, "HP Desk", "HP", 400.00f, "Desktop Computer", year);
electronics[2] = new Product(300, "Motorola Desk", "Motorola", 400.00f, "Desktop Computer", year);
electronics[3] = new Product(400, "Samsung Desk", "Samsung", 400.00f, "Desktop Computer", year);
electronics[4] = new Product(500, "Apple Desk", "Apple", 400.00f, "Desktop Computer", year);
//Reviewer
customers[0] = new Reviewer (rid, "Kathy Hochul", 12201, "pass1");
customers[1] = new Reviewer (++rid, "Joe Biden", 12201, "pass2");
customers[2] = new Reviewer (++rid, "Kamala Harris", 12201, "pass3");
}
/***************** End LoadData*************************/
/**********************Login*************************/
boolean login()
{ String entid = "", entpass = "";
int numattempts = 0;
System.out.println("Welcome to Retail Review Systems");
do
{ // get review id and pass
System.out.print("Enter your id: ");
entid = keyboard.next();
int rid = Integer.parseInt(entid);
System.out.print("Enter your password: ");
entpass = keyboard.next();
// Search the array for the reviewer
for (int i = 0; i< 3; i++)
{ if (rid == customers[i].getRid() && entpass.equals(customers[i].getRpwd()))
{ selreviewer =i;
return true;
}
}
numattempts++;
System.out.println("Invalid password");
}while(numattempts < 3);
return false;
}
/**************************createReview****************/
void createReview()
{ short entrating = 0;
String entreview = "";
int selproduct = 0;
//capture Review
System.out.println("Welcome " + customers[selreviewer].getFullname() + " , please choose a product to review.");
displayProduct();
System.out.println("Which product would you like to review :(1-5);");
selproduct = keyboard.nextInt();
System.out.println("What is the rating (1-5 stars)?");
entrating = keyboard.nextShort();
System.out.println("What is the review");
entreview = keyboard.next();
// add the review to the list
reviewnum++;
Review newreview = new Review(reviewnum ,"02/25/2022", customers[selreviewer].getRid(), entrating, entreview, electronics[selproduct -1].getUpc() );
}
/*******************************Display Products**************************/
void displayProduct()
{
System.out.println("we have the following products for review.");
for (int i=0; 1< electronics.length; i++)
{System.out.println((i+1) + ". " + electronics[i].getManufacturer() + " " + electronics[i].getPname());
}
}
/****************************end Display Products*************************/
/*******************************Display Review**************************/
void displayReview()
{}
}
RetailReviewSystem.java:15
public class RetailReviewSystem {
public static void main(String[] args) {
RetailReview amazon = new RetailReview();
boolean isValidLogin = false;
amazon.loadData();
isValidLogin = amazon.login();
if(!isValidLogin)
System.out.println("Number of login attempts exceeded, program terminated.");
amazon.createReview();
}
}