将一个arraylist传递给另一个班级

时间:2015-03-20 06:21:32

标签: java arraylist

我对编程很新,我在这里有点困惑。我正试图将一个填充的arraylist传递给另一个班级。这是我制作arraylist的类:

public class inventory
{    
    private static ArrayList<engineSpecs> list = new ArrayList<engineSpecs>();
    public inventory()
    {        
        //Instantiates objects of constructor engineSpecs
        engineSpecs astonmartin = new engineSpecs("Aston Martin", "Vanquish", 350000, 11, "Gray",
                                     2015, 565, 457, "automatic");
        engineSpecs ferrari = new engineSpecs ("Ferrari", "458 Italia", 240000, 13, "Red", 2015, 
                                       570, 398, "automatic"); 

        //Adds objects into array list
        list.add(astonmartin);
        list.add(ferrari);   
    }
    public static ArrayList<engineSpecs> getList()
    {
        return list;
    } 
}

这是我试图将arraylist传递给的课程:

public class Main
{
    public static void main (String[] args)
    {        
    inventory inventory = new inventory();
    System.out.println (inventory.getList());
    }
}

当我运行主类时,它只打印出一个空的arraylist。非常感谢任何帮助!

3 个答案:

答案 0 :(得分:0)

默认情况下,当您打印列表时,它将显示如下

  

[list @HashCode元素的类名]

如果希望以特定方式显示列表,则需要覆盖添加到列表中的类的toString方法。在你的情况下enginepecs类

在engineSpecs类中添加一个简单的toString,如下所示,将为您提供所需的结果

public String toString(){
return name;
}

<强>输出

  

[阿斯顿马丁,法拉利]

注意

在java类中,名称需要以大写字母开头。只有当你想在类级别使用它时,才应该将参数声明为静态

答案 1 :(得分:0)

结果不会为null或为空。 它也会有条目。如果你为类&#34; engineSpecs&#34;覆盖toString。你可以看到列表的条目。

答案 2 :(得分:0)

尝试将其声明为实例变量而不是静态变量。并删除访问列表的静态方式。