我正在尝试创建银行记录列表。每条记录由名字、姓氏、电话号码和余额组成。在第一个类中,我向用户询问此信息,然后创建记录类的新实例以添加到列表中。但是,当我添加更多记录时,它会将所有记录替换为最新的记录,您可以使用我的 showAllRecords() 方法看到这一点。我该如何解决这个问题?
主类中的add和showAllRecords方法。这些方法是从主方法中的 switch 语句调用的:
private static void showAllRecords()
{
if(records.bankRecords.size() == 0)
System.out.println("There are no records.");
else
for (int i = 0; i < records.bankRecords.size(); i++)
{
System.out.println(records.bankRecords.get(i));
}
}
private static void add()
{
Scanner scan = new Scanner(System.in);
System.out.print("Please enter the first name: ");
String firstName = scan.next();
System.out.print("Please enter the last name: ");
String lastName = scan.next();
System.out.print("Please enter the phone number: ");
String phoneNumber = scan.next();
System.out.print("Please enter the balance: ");
int balance = scan.nextInt();
bankRecords.add(new records(firstName, lastName, phoneNumber, balance));
}
记录类
public class records
{
public static String firstName;
public static String lastName;
public static String phoneNumber;
public static int balance;
LinkedList<records> bankRecords = new LinkedList<records>();
public records(String tFirstName, String tLastName, String tPhoneNumber, int tBalance)
{
firstName = tFirstName;
lastName = tLastName;
phoneNumber = tPhoneNumber;
balance = tBalance;
}
}
最佳答案
出现此问题的原因是 records
类中的所有字段都是静态
。从字段声明中删除 static
关键字。由于它们是静态的,因此每当您创建 records
类的新对象时,您都会覆盖这些static
字段。
静态字段属于类而不是对象。
关于java - 将另一个类的多个实例添加到 LinkedList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512193/