英文:
how to find length of an object
问题
以下是翻译好的部分:
我正在努力寻找消息对象的长度。给定的任务如下:练习模板带有一个预定义的 Message 类,可用于创建表示消息的对象。每条消息都有一个发送者和一些内容。
实现 MessagingService 类。该类必须有一个无参数的构造函数,并包含一个 Message 对象的列表。然后,向该类添加以下两个方法:
public void add(Message message) - 将传递的消息作为参数添加到消息服务中,只要消息内容最多为 280 个字符。
public ArrayList<Message> getMessages() - 返回添加到消息服务中的消息。
提示!您可以使用与字符串关联的 length() 方法来找出字符串的长度。
我的工作如下:
import java.util.ArrayList;
public class MessagingService {
ArrayList<Message> messages;
public MessagingService(){
this.messages = new ArrayList();
}
public void add(Message message){
if(message.length() <= 280){
messages.add(message);
}
}
public ArrayList<Message> getMessages(){
ArrayList<Message> mess = new ArrayList();
for(Message m:messages){
mess.add(m);
}
return mess;
}
}
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 int length(){
return this.content.length();
}
@Override
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;
}
}
英文:
I am struggling to find the length of a message object. The given task is as follow: The exercise template comes with a pre-defined Message class that can be used to create objects representing messages. Each message has a sender and some content.
Implement the MessagingService class. The class must have a parameterless constructor and contain a list of Message objects. After that, add the following two methods to the class:
public void add(Message message) - adds a message passed as a parameter to the messaging service as long as the message content is at most 280 characters long.
public ArrayList<Message> getMessages() - returns the messages added to the messaging service.
Tip! You can find out the length of the string using the length() method associated with the string.
What I have done is:
>
import java.util.ArrayList;
public class MessagingService {
ArrayList<Message> messages;
public MessagingService(){
this.messages = new ArrayList();
}
public void add(Message message){
if(message.length() <= 280){
messages.add(message);
}
}
public ArrayList<Message> getMessages(){
ArrayList<Message> mess = new ArrayList();
for(Message m:messages){
mess.add(m);
}
return mess;
}
}
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 int length(){
return this.length();
}
// created using the "insert code" feature of NetBeans
@Override
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;
}
}
Blockquote
答案1
得分: 1
在你的Message类内部,这是无意义的。它会抛出堆栈溢出异常:
public int length(){
return this.length();
}
你可能需要的是:
public int length(){
return content.length();
}
英文:
Inside your Message class, this is nonsense. It will throw stackoverflow exception:
public int length(){
return this.length();
}
What you probably need here is:
public int length(){
return content.length();
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论