为什么gson在方法toJSONString()中使用StringWriter?

时间:2015-06-18 08:57:12

标签: java json string stringwriter

来自源代码:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <BookReservationResponse xmlns="http://schemas.livebookings.net/OneFormat/Aggregator/Internal/1/0/">
         <ConfirmationNumber>T2NVGBUN</ConfirmationNumber>
         <ReservationId>34277666</ReservationId>
         <AllowedToCancelOnline>true</AllowedToCancelOnline>
      </BookReservationResponse>
   </soap:Body>
</soap:Envelope>

public String toJson(Object src, Type typeOfSrc) { StringWriter writer = new StringWriter(); this.toJson((JsonElement)this.toJsonTree(src, typeOfSrc), (Appendable)writer); return writer.toString(); } 在内部使用StringWriter;为什么不使用StringBuffer来获得更好的性能?

1 个答案:

答案 0 :(得分:1)

StringWriter是一个作家,它与StringBuffer完全不同,而且每个人的目的都与另一个人的目的相距甚远,以至于更容易解释相似之处,这些相似之处将被归为两者之间存在的相似之处。所有对象。如果需要StringWriter(字符流),则应使用Writer。当你需要一个可变缓冲区来构造字符串时,你应该使用StringBuffer,或者必须使用String的构造函数来构造一个String。

他们使用它是因为他们需要一个字符流。