首页 > 解决方案 > 打印 ArrayList 中的对象

问题描述

该项目要求我创建一个对象的 ArrayList,然后打印完整的列表。此外,最大字符数不能超过 280。创建的对象在我的“消息”类中定义,列表在我的 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;
    }

}

消息服务类:

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

标签: javaobjectarraylistreturntostring

解决方案


我找到了解决方案:在 add() 方法中,该行是: if(message.toString().length() <= 280) 它应该在哪里: if(message.getContent().length() <= 280)


推荐阅读