我对编程很新,我在这里有点困惑。我正试图将一个填充的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。非常感谢任何帮助!
答案 0 :(得分:0)
默认情况下,当您打印列表时,它将显示如下
[list @HashCode元素的类名]
如果希望以特定方式显示列表,则需要覆盖添加到列表中的类的toString方法。在你的情况下enginepecs类
在engineSpecs类中添加一个简单的toString,如下所示,将为您提供所需的结果
public String toString(){
return name;
}
<强>输出强>
[阿斯顿马丁,法拉利]
注意强>
在java类中,名称需要以大写字母开头。只有当你想在类级别使用它时,才应该将参数声明为静态
答案 1 :(得分:0)
结果不会为null或为空。 它也会有条目。如果你为类&#34; engineSpecs&#34;覆盖toString。你可以看到列表的条目。
答案 2 :(得分:0)
尝试将其声明为实例变量而不是静态变量。并删除访问列表的静态方式。