java为什么使用StringWriter而不是StringBuffer? 2 周,6 日 Questions & Answers 869 我不明白用StringWriter代替StringBuffer。请帮我理解
# 1 楼答案 这在很大程度上是API的问题 StringWriter实现WriterAPI;i、 e.它可以用作“接收器”,用于捕获写入基于字符的输出流的字符 StringBuilder实现CharSequenceAPI。这比Writer更通用,因为它还支持访问已经写入的字符。此外,StringBuilder还有在任意位置插入和删除的方法 还应该注意的是Writer和StringBuilder都实现了AppendableAPI,这意味着对于某些用例,您可以编写一个可以接受StringWriter或StringBuilder来捕获文本的方法 所以。。。你会用哪一种 如果要调用现有的库方法,请使用与该方法的API兼容的方法。如果两者都兼容,则可以使用其中一种 如果您正在设计一个API方法,那么可能应该使用相应的超类/接口之一作为参数(或结果)类型,而不是硬连接StringWriter或StringBuilder。这将使您的方法更通用/更可重用。最普遍的可能是Appendable。。。但这取决于您的方法需要对角色接收器做什么,以及预测的客户需求
# 1 楼答案
这在很大程度上是API的问题
StringWriter
实现Writer
API;i、 e.它可以用作“接收器”,用于捕获写入基于字符的输出流的字符StringBuilder
实现CharSequence
API。这比Writer
更通用,因为它还支持访问已经写入的字符。此外,StringBuilder
还有在任意位置插入和删除的方法还应该注意的是
Writer
和StringBuilder
都实现了Appendable
API,这意味着对于某些用例,您可以编写一个可以接受StringWriter
或StringBuilder
来捕获文本的方法所以。。。你会用哪一种
如果要调用现有的库方法,请使用与该方法的API兼容的方法。如果两者都兼容,则可以使用其中一种
如果您正在设计一个API方法,那么可能应该使用相应的超类/接口之一作为参数(或结果)类型,而不是硬连接
StringWriter
或StringBuilder
。这将使您的方法更通用/更可重用。最普遍的可能是Appendable
。。。但这取决于您的方法需要对角色接收器做什么,以及预测的客户需求