英文:
JAXBElement<String> initialization - Java Spring Boot 2
问题
我必须初始化一个类型为 JAXBElement <String>
的元素,我已经尝试如下:
JAXBElement<String> element = new JAXBElement<>(new QName("http://tempuri.org/", "FieldName"), String.class, "FieldData");
但我不确定这是否是正确的方式。有人可以确认是否有另一种更简单的方法吗?
英文:
I have to initialize an element of type JAXBElement <String>
, I have tried as follows:
JAXBElement<String> element = new JAXBElement<>(new QName("http://tempuri.org/", "FieldName"), String.class, "FieldData");
But I am not sure if it is the correct way. Can someone confirm if there is another easier way?
答案1
得分: 1
你发布的是我所知道的初始化 JAXBElement
元素最简单的方法 - 也是正确的方法。
两个构造函数分别是:
JAXBElement(QName name, Class<T> declaredType, Class scope, T value)
以及(最简单的方法,你所使用的方法)
JAXBElement(QName name, Class<T> declaredType, T value)
另外,请记住,如果你所说的“简单”是指你不需要用 scope(第一个构造函数的第三个参数)来初始化对象,那么你的代码应该是正确的。
编辑:
我唯一有疑问的是 "FieldName"
(提供给 QName
构造函数的第二个参数) - 我不知道它对你来说代表什么,但这应该是 QName
的本地部分。有关更多信息,请参见
public QName(String namespaceURI, String localPart)
英文:
What you posted is the simplest way of initializing a JAXBElement
element that I know of - a correct one.
The two constructors are:
JAXBElement(QName name, Class<T> declaredType, Class scope, T value)
and (the simplest one, the one you used)
JAXBElement(QName name, Class<T> declaredType, T value)
Also, keep in mind that if by Simple you mean, you don't need to initialize the object with the scope (3rd argument of the first constructor), then your code should be fine.
Edit:
The only questionable thing I see is the "FieldName"
(2nd argument provided to the QName
constructor) - I'm not what it represents for you, but this should be the local part of the QName
. For more info about this see
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论