首页 > 解决方案 > 在 Java 中将多个对象添加到列表时遇到问题

问题描述

我有一个用 Java 编写的基本投资计算器,但我似乎无法将多个投资对象添加到 ArrayList。以下是一些基础知识(问题行在“如果添加 401k”块中):

public static void main(String[] args) {
    input = new Scanner(System.in);
    ArrayList<Investment> invList = new ArrayList();

    int mainChoice = Util.mainMenu();

    while(3 != mainChoice) {

        //Add new investment
        if (1 == mainChoice) {
            int invChoice = Util.invMenu();

            //If adding a 401k
            if (1 == invChoice) {
                //gets info from user, these get passed as arguments when creating new object below

                //RetPlan401k extends the Investment superclass
                RetPlan401k inv = new RetPlan401k(invName, bal401k, contrb401k, ret401k, match, cap);
                invList.add(inv);
            }
            ...

我从调试中知道,我可以将任意数量的投资对象添加到列表中,但是当我去打印每个对象的信息时(为了简单起见,让我们说一下:

(for int i = 0; i < invList.size(); ++i){
System.out.print("Investment name: " + invList.get(i).getName());
}) 

它打印最近添加的 invList.size() 次对象的名称。即我有 invList.size() 对象,所有这些都包含完全相同的信息。

这就像这里的数据结构 101,但我有一点时间,只是没有看到它。为什么不是每个投资对象都根据输入的方式打印?谢谢您的帮助。

标签: javalistarraylistadd

解决方案


问题解决了......原来我的对象类中有一些错误的“静态”关键字。每次都会得到你。谢谢大家。


推荐阅读