我已经使用以下静态方法实现了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
,如果计划使用多线程,则必须每次都创建一个新的。
请参阅非官方的JAXB指南
JAXBContext类是线程安全的, 但是Marshaller,Unmarshaller和Validator 类 不是线程安全的 。
问题内容: 嗨,有人可以向我解释为什么在Java的主函数中调用非静态方法之前必须创建实例吗?这背后的原因是什么? 问题答案: 因为它们是实例成员,所以要访问它们,您需要实例。 当从同一类蓝图创建多个对象时,每个对象都有各自不同的实例变量副本。对于Bicycle类,实例变量是脚踏圈速,档位和速度。每个Bicycle对象对于这些变量都有其自己的值,存储在不同的存储位置中。 所以现在你的第二个问题 有时
问题内容: 我希望能够通过在已实例化的对象上调用方法来创建对象的新实例。例如,我有一个对象: 我希望能够调用并拥有两个有机体类型的对象。此时我的方法如下所示: 并且我非常确定它不起作用(我甚至不确定如何测试它。我在本文中尝试了gc方法)。那么,如何使我的对象创建自己的副本,就像我创建的第一个对象(带有)一样,该副本是可访问的? 问题答案: 另一个选项-如果方法中未使用实例(): 这样可以确保生物产
问题内容: 我熟悉静态工厂方法的概念和好处,如Joshua Bloch的EffectiveJava中所述: 工厂方法具有名称,因此与构造函数不同,您可以拥有多个具有相同签名的工厂方法。 工厂方法不必创建新的对象。他们可以返回先前创建的对象。这对于不可变对象或值对象很有用。 与构造方法不同,工厂方法可以返回其返回类型的任何子类型的对象。 现在,我正在尝试为正在学习Java和OO原理的人员解释静态工厂
问题内容: 我有点困惑。问题是标题,这就是为什么我要问。我在单个VM上运行了JSF + JPA Web应用程序。JPA类具有字段。现在想象一下某个网络用户打开了一个页面并执行以下代码 当另一个Web用户/线程尝试读取该瞬态值时,我期望什么输出: 换句话说,就JVM而言,方法是否总是返回新的类实例或相同或“取决于”的实例?我一直在通过JSR-220寻找答案,但没有成功,任何帮助或文档参考都将不胜感激
问题内容: 我相信这个问题与此类似,但用语有所不同。从Mongoose 4 文档中: 我们也可以定义自己的自定义文档实例方法。 现在,我们所有的动物实例都可以使用findSimilarTypes方法。 然后: 向模型添加静态方法也很简单。继续我们的animalSchema: 似乎通过静态方法,每个动物实例也将具有可用的方法。模式中的和对象是什么?有什么区别,为什么我要一个使用另一个? 问题答案:
我只是在看课本上给我的课文,我不是很确定我理解它在说什么。它基本上告诉我静态方法或类方法包含“modifier”关键字static。但我真的不知道那是什么意思? 有谁能用简单的术语给我解释一下什么是静态方法或者类方法吗? 另外,我能得到一个关于实例方法是什么的简单解释吗? 这是他们在课本上给我的: 静态修饰语的存在与否具有重要的实际意义。一个公共类方法可能会在Java处理它所属的类的定义后立即被调