как найти длину объекта - PullRequest
0 голосов
/ 06 апреля 2020

Я изо всех сил пытаюсь найти длину объекта сообщения. Данная задача выглядит следующим образом: Шаблон упражнения поставляется с предопределенным классом сообщений, который можно использовать для создания объектов, представляющих сообщения. Каждое сообщение имеет отправителя и некоторый контент.

Реализация класса MessagingService. Класс должен иметь конструктор без параметров и содержать список объектов Message. После этого добавьте в класс следующие два метода:

publi c void add (Message message) - добавляет сообщение, переданное в качестве параметра в службу обмена сообщениями, если содержание сообщения не превышает 280 персонажи длинные. publi c ArrayList getMessages () - возвращает сообщения, добавленные в службу сообщений. Подсказка! Вы можете узнать длину строки с помощью метода length (), связанного со строкой.

Я сделал следующее:

import java .util.ArrayList;

publi c class MessagingService {ArrayList 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;

publi c 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 голос
/ 06 апреля 2020

Внутри вашего класса Message это чепуха. Он выдаст исключение stackoverflow:

public int length(){
    return this.length();
}

Что вам, вероятно, понадобится здесь:

 public int length(){
        return content.length();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...