java - 将另一个类的多个实例添加到 LinkedList 中

标签 java object linked-list

我正在尝试创建银行记录列表。每条记录由名字、姓氏、电话号码和余额组成。在第一个类中,我向用户询问此信息,然后创建记录类的新实例以添加到列表中。但是,当我添加更多记录时,它会将所有记录替换为最新的记录,您可以使用我的 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/

相关文章:

java - 播放不同音高的正弦波

java - 哪个Jdk版本支持windows xp

javascript - 确定一个 Javascript 对象是一个 "complex"对象还是一个字符串

c - gdb 中链表值的变化

java - 在 java restful api 中查找内存泄漏

javascript - 如何将嵌套对象转换为数组的数组

javascript - 如何检查对象的 "truthyness",然后删除虚假的并编辑对象

java - 在单向链表中添加双向链表节点

java - 打印陷入无限循环的链表

java - 如何在使用 Thread.sleep 时更新 UI