如何在单个对象上重复调用方法?

时间:2018-05-14 19:17:43

标签: java object

我正在尝试执行此任务:

public static void main(String[] args) {

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

    // Returns test in progress ...

}

我创建一个对象m并在该对象的类中调用一个append方法三次。我知道该方法必须返回一个“Message”对象,以便再次调用它上面的方法,但是我如何设置它以便在调用append方法时将String类型作为输入并将其添加到在创建时传递给对象的消息,它将只使用创建的现有对象吗?

1 个答案:

答案 0 :(得分:3)

Message.append()方法中,返回this以返回当前实例,例如:

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

正如其他人所提到的,您还有内置的方法将String连接到特定对象并返回此对象本身。 代表可变字符序列的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;
}