Ich versuche, das folgende Projekt zu lösen, wo ich die besten Kunden basierend auf ihren Einkäufen auswählen muss. Alle notwendigen Details wie Name und gekaufter Betrag sind in meinem POJO-Objekt (Customer) enthalten. Ich machte eine ArrayList von Cusomers und versuchte, getName()/getAmount-Methode in einer for-Schleife zuzugreifen.Zugriff auf ein Pojo-Objekt mit Arraylist
import java.util.ArrayList;
import java.util.Scanner;
public class Store {
ArrayList<Customer> Customers = new ArrayList<>();
Customer[] csa = new Customer[1000];
public void addSale(String customerName, double amount) {
String cn = customerName;
double am = amount;
Customer cs = new Customer(cn, am);
Customers.add(cs);
}
public String nameOfBestCustomer() {
String name = null;
//Customer csa=new Customer();
double largest = csa[0].getAmount();
// gives me:java.lang.NullPointerException
for (int i = 1; i < Customers.size(); i++) {
if (largest < csa[i].getAmount()) {
largest = csa[i].getAmount();
name = csa[i].getName();
}
}
// return name+""+largest;
return name;
}
public static void main(String[] args) {
Store s = new Store();
double am;
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("Enter Customer name:");
String cn = scanner.next();
if (cn.equals("done")) {
am = 0;
scanner.close();
break;
} else {
System.out.println("Enter Amount:");
am = scanner.nextDouble();
s.addSale(cn, am);
}
}
System.out.println("Best customer " + s.nameOfBestCustomer());
}
}
Ist es in Ordnung, Customer [] csa = new Customer [1000] zu verwenden? wenn ich bereits einen Arraylist für Kunden habe?
Kann mir jemand sagen, wie man mit Array oder ArrayList auf Kundenmethoden zugreift? Und warum ist large = csa [0] .getAmount() eine NullPointerException?
http://idownvotedbecau.se/itsnotworking/ –
Ist das eine Hausaufgaben Frage? [Weil wir eine Etikette für diese haben] (https://meta.stackoverflow.com/questions/334822/how-do-iask-and-answer-homework-questions). – Haem
no. Ich mache es für die Praxis – LearnerForever