-1

我为一个类定义了一个对象数组Plane。像这样:

        Plane[] terminalOne = new Plane[] {
            new Plane(1, "Madrid", "Ryanair", "Airbus A300", "05.00"),
            new Plane(3, "Riga", "AirBaltic", "Boeing 737", "05.30")
            //ETC..
        };

我试图弄清楚如何从这个数组中操作/获取信息,例如,显示对象。我尝试System.out.println(terminalOne);了哪些返回[Lairport.Plane;@322ba3e4(我的包裹在哪里机场)我不明白这是什么意思,但我认为它返回了第一个对象?我试图让它更具可读性,并在我定义平面类和对象构造函数的文件中添加了这个函数:

    public void displayPlane() // display plane
    { 
        System.out.println();
        System.out.print("{" + flightID + "," + destination + "," + airline + "," + aircraft + "," + time + "}");
        System.out.println();
    }

以形式显示有关对象的信息{.., .., .., .., ..}并尝试将其应用到我的主文件中,terminalOne.displayPlane();但编译器错误提示“找不到符号,符号:方法 displayPlane(),位置:变量 terminalOne of type Plane[]”

我使用 LinkedLists,在单独的文件中定义了这些方法,以及搜索、删除等方法。我可以对数组执行类似的操作,如果可以,正确的方法是什么?

4

2 回答 2

2

terminalOne是一个数组,而不是一个单独的平面。你可以使用:

for (Plane plane : terminalOne) {
    plane.displayPlane();
}

...但我个人会考虑toString()改写Plane

@Override public String toString() {
    return "{" + flightID + "," + destination + "," + airline + "," +
           aircraft + "," + time + "}";
}

然后:

for (Plane plane : terminalOne) {
    System.out.println(plane);
}
于 2013-11-02T08:42:26.023 回答
0

正如乔恩建议的那样,您可以displayPlane()用实现替换您的方法toString()
然后你可以打电话

System.out.println("terminalOne = " + Arrays.toString(terminalOne));

查看打印的阵列的所有元素。

要从“连接”输出结果,您可以执行以下操作

List<Plane> concatList = new ArrayList<Plane>();
Collections.addAll(concatList, terminalOne);
Collections.addAll(concatList, terminalTwo);
// add many more terminals and then print
System.out.println(concatList);

仅使用标准 java 库

于 2013-11-02T08:54:14.940 回答