java - 从另一个类调用与Arraylist相关的方法

标签 java

我正在构建一个带有 Room 的应用程序类是抽象的 Standard继承自 Room 的类。然后我创建了一个 Hostel类(class)。 Hostel内类(class)是 ArrayList<Room> rooms可以添加到哪些房间。我在Hostel中创建了一个方法显示所有可用房间的类,但是当我尝试在另一个类( MainGUI )中实例化它时,没有显示任何内容。据我所知,这是因为每次单击按钮时我都会创建一个新的旅馆,但我想知道如何传递数据而不是每次都创建一个新的旅馆。以下是相关代码片段。

Hostel Class

public Hostel()
{
    rooms = new ArrayList<Room>();
}

public void showAvail()
{
    for (Room room : rooms)
    {
        if (room.available == true) 
        {
                 theString = room.getRoomData() + "\n";
                 //System.out.println("Available Rooms" + "\n" + theString);
                 JOptionPane.showMessageDialog(null,theString);
        }
    }
}

public void addRoom(Room theRoom)
{
    rooms.add(theRoom);
}

MainGUI Class

roomsFreeB.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
    {
        Hostel host = new Hostel();
        host.showAvail();
    }
});

如有任何帮助,我们将不胜感激

最佳答案

除非您省略了 Hostel host = new Hostel();host.showAvail(); 之间的代码,否则您永远不会向旅馆添加任何房间,因此有没有可用的房间(或根本没有)可显示。您需要在创建host之后和showAvail之前将房间添加到host,或者创建一个Hostel实例变量,将其填充到某处,然后然后调用 showAvail

关于java - 从另一个类调用与Arraylist相关的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261582/

相关文章:

Java Thread - 制作时钟和自己的时钟

JAVA8 - 使用 lambda 进行分组

java - 我们使用 BiMap 解决的问题

java - 调整 'Google maps V2' 以占据屏幕的一半而不是整个屏幕

java - XOM + java 检索非元素值

java - 在 Xpages Libraries 中开发时,未拾取更改

java - 仅报告 mapReduce 作业的映射器中的 k 个最低值

java - 将 OSMDroid 的 map 图 block 提供程序更改回默认值

java - 返回 Json 中等于搜索字符串的嵌套元素 - mongodb

Java Html 解析器提取特定数据?