java - 打印 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
解决方案
我找到了解决方案:在 add() 方法中,该行是: if(message.toString().length() <= 280) 它应该在哪里: if(message.getContent().length() <= 280)
推荐阅读
- azure-stream-analytics - 带有自定义窗口的 Azure 流分析
- php - 如何使用 cURL 将数据从外部 HTML 表单发布到 Eloqua 表单
- discord.js - 如何让 discord.js 中的消息收集器根据用户发送的消息进行多个响应?
- python - 实体识别gcp自定义模型
- java - Docker-compose 和 Java
- google-sheets - Google 表格部分匹配单元格
- python - tensorflow ValueError:形状不兼容
- typescript - 必需的类型删除了函数类型的知识
- sql-server - T-SQL WHERE IN子句:一个参数包含多个INT值会返回类型转换错误
- javascript - addEventListener 不是函数“Javascript”