【问题标题】:Why use StringWriter instead of StringBuffer? [duplicate]为什么使用 StringWriter 而不是 StringBuffer? [复制]
【发布时间】:2015-12-18 06:59:03
【问题描述】:

我不明白用StringWriter 代替StringBuffer。请帮我理解。

【问题讨论】:

标签: java


【解决方案1】:

这主要是 API 的问题。

  • StringWriter 实现了Writer API;即它可以用作“接收器”来捕获写入基于字符的输出流的字符。

  • StringBuilder 实现 CharSequence API。这比Writer 更通用,因为它还支持访问已经写入的字符。另外StringBuilder有任意位置插入和删除的方法。

还应该注意WriterStringBuilder 都实现了Appendable API,这意味着对于某些用例,您可以编写一个可以接受StringWriterStringBuilder 的方法用于捕获文本。

那么……你会用哪个?

  • 如果您正在调用现有的库方法,请使用与该方法的 API 兼容的任何一个。如果两者都兼容,您可以使用任何一个。

  • 如果您正在设计 API 方法,您可能应该使用相应的超类/接口之一作为参数(或结果)类型,而不是硬连线 StringWriterStringBuilder。这将使您的方法更通用/更可重用。最通用的可能是Appendable ...但这取决于您的方法需要对字符接收器做什么,以及预测的客户端需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 2020-07-05
    • 1970-01-01
    • 2015-07-14
    • 2013-04-16
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多