【发布时间】:2020-08-09 20:12:10
【问题描述】:
该项目需要我创建一个对象的 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;
}
}
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
【问题讨论】:
-
问题是?听起来像是作业或代码审查...
-
您能否更具体地说明什么不起作用? getMessages() 方法是返回一个 empy ArrayList 还是什么?
-
我按原样运行了您的代码及其打印。返回消息后您想要做什么,您没有在任何地方存储/使用它
-
我很抱歉没有更具体。将代码上传到 Moocfi 服务器时,它声明:当向消息服务添加一条包含 280 个字符的消息时,MessagingService 的 getMessages 方法应该返回一个包含一条消息的列表。预期: 但为: 调用时,方法 public ArrayList
getMessages() 应该只返回 ArrayList,该方法中的所有其他代码都是我的测试。我的问题是它为什么不返回任何东西? -
它打印出
hi For each print method: pieterer: aaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbbaaaaaaaaaa1111111111bbbbbbbbbb koos: kaaskril jan: wikkelspies Println complete list method: [pieterer: aaaaaaaaaa111...., koos: kaaskril, jan: wikkelspies] Return print method你期待什么
标签: java object arraylist return tostring