gpt4 book ai didi

java - 在静态方法中创建新的 JAXB Marshaller 实例...它是线程安全的吗?

转载 作者:行者123 更新时间:2023-12-01 10:12:33 27 4
gpt4 key购买 nike

我已经使用以下静态方法实现了一个 util 类:

public static String objToXml(JAXBContext jaxbContext, ClassA obj) throws Exception{
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, true );
StringWriter writer = new StringWriter();
marshaller.marshal(obj, writer);
return writer.toString();
}

我的理解是 JAXB Marshaller 和 StringWriter 都是线程安全的...但是我想再次确认如果我实现这样的静态方法..并且有多个线程同时调用 objToXml 方法,是否会有任何潜在的问题?

最佳答案

是的,如果您计划以多线程方式使用它们,则每次都必须创建一个新的 Marshaller

参见Unofficial JAXB Guide

The JAXBContext class is thread safe, but the Marshaller, Unmarshaller, and Validator classes are not thread safe.

关于java - 在静态方法中创建新的 JAXB Marshaller 实例...它是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062415/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com