我正在尝试执行此任务:
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类型作为输入并将其添加到在创建时传递给对象的消息,它将只使用创建的现有对象吗?
答案 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;
}