java - 打印 ArrayList 中的对象

标签 java object arraylist return tostring

该项目要求我创建一个对象的 ArrayList,然后打印完整的列表。此外,最大字符数不能超过 280。创建的对象在我的“Message”类中定义,列表在我的 MessagingService 类中定义和处理。我无法理解为什么 MessagingService 类无法返回定义的完整 ArrayList。它只是不返回任何内容。我添加了另外两种打印方式来测试是否成功添加到列表中。

消息类:

import java.util.Objects;

public class Message {

    private String sender;
    private String content;

    public Message(String sender, String content) {
        this.sender = sender;
        this.content = content;
    }

    public String getSender() {
        return sender;
    }

    public String getContent() {
        return content;
    }

    public String toString() {
        return this.sender + ": " + this.content;
    }

    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Message other = (Message) obj;
        if (!Objects.equals(this.sender, other.sender)) {
            return false;
        }
        if (!Objects.equals(this.content, other.content)) {
            return false;
        }
        return true;
    }

}

MessagingService 类:

import java.util.ArrayList;

public class MessagingService {

    private ArrayList<Message> messages;

    public MessagingService() {
        this.messages = new ArrayList<>();
    }

    public void add(Message message) {
        if (message.toString().length() <= 280) {
            this.messages.add(message);
        }
    }

    public ArrayList<Message> getMessages() {
        System.out.println("For each print method:");
        for (Message message : messages) {
            System.out.println(message);
        }
        System.out.println("");

        System.out.println("Println complete list method:");
        System.out.println(this.messages);
        System.out.println("");

        System.out.println("Return print method:");
        return this.messages;
    }
}

主类:

public class Main {

    public static void main(String[] args) {
        Message test1 = new Message("pieterer", "aaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbb");
        Message test2 = new Message("koos", "kaaskril");
        Message test3 = new Message("jan", "wikkelspies");
        MessagingService list = new MessagingService();
        System.out.println("");
        list.add(test1);
        list.add(test2);
        list.add(test3);
        list.getMessages();
    }
}

可以在此处找到练习的链接: https://java-programming.mooc.fi/part-6/1-objects-within-objects

最佳答案

这里,MessagingService 返回列表,但您没有在 main() 中打印它。 将 main() 中的 list.getMessages() 行替换为 System.out.println(list.getMessages())。

您也可以替换:

public ArrayList<Message> getMessages() {
        System.out.println("For each print method:");
        for (Message message : messages) {
            System.out.println(message);
        }
        System.out.println("");

        System.out.println("Println complete list method:");
        System.out.println(this.messages);
        System.out.println("");

        System.out.println("Return print method:");
        return this.messages;
    }

使用以下代码:

@Override
public String toString() {
    return new ReflectionToStringBuilder(this,ToStringStyle.SHORT_PREFIX_STYLE).toString();}

关于java - 打印 ArrayList 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61439122/

相关文章:

java - 如何从现有的jhipster项目中获取JDL或JH文件

java - hibernate.id.new_generator_mappings被glassfish忽略了吗?

java - 为什么rapid api不返回json?

python - 定义和访问自定义对象列表

c# - 创建未设置为对象实例的 Outlook 应用程序对象引用

c - C 中最简单的 Arraylist 实现

java - 从另一个列表初始化列表的一行

java - 如何根据另一个列值的变化更改生成列中选择的选定值

php - 获取特定整数元素的对象

java - 如何在没有 system.out.println 语句的情况下循环遍历数组列表并显示存储的元素?