gpt4 book ai didi

java - 打印 ArrayList 中的对象

转载 作者:行者123 更新时间:2023-12-01 17:09:22 28 4
gpt4 key购买 nike

该项目要求我创建一个对象的 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com