Как мне неоднократно вызывать метод для одного объекта? - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь выполнить эту задачу:

public static void main(String[] args) {

    Message m = new Message("test");
    m.append(" in").append(" progress").append(" ... ");
    m.printMessage();

    // Returns test in progress ...

}

Где я создаю объект m и вызываю метод добавления, созданный в классе, для объекта три раза.Я понимаю, что метод должен возвращать объект "Message", чтобы снова вызвать метод для него, но как мне сделать так, чтобы при вызове метода append, который принимает тип String в качестве входных данных и добавляет его ксообщение, переданное объекту при создании, будет использовать только созданный существующий объект?

1 Ответ

0 голосов
/ 14 мая 2018

В методе Message.append() верните this, чтобы вернуть текущий экземпляр, например:

public Message append(String msg){
   // use msg
   return this;
}

Как уже упоминалось, у вас также есть встроенные способы объединения String s к определенному объекту и вернуть этот объект сам.StringBuilder, который представляет изменяемую последовательность символов, является распространенным способом.

1) Если вы заметили, что класс Message вам больше не нужен, вы можете удалить его и использовать вместо StringBuilder экземпляр, такой как:

StringBuilder m = new StringBuilder("test");
m.append(" in").append(" progress").append(" ... ");

Примечаниечто в этом случае вы должны создать printMessage() в другом месте, которое могло бы выглядеть следующим образом:

public void printMessage(StringBuilder m){
  ...
}

2) В качестве альтернативы, если класс Message все равно требуется, вы можете оставить его и делегировать/ обернуть во внутренний экземпляр StringBuilder, например:

private StringBuilder builder = new StringBuilder();
public Message append(String msg){
   builder.append(msg); 
   return this;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...