gpt4 book ai didi

java - JaxB - 设置 HexBinary 值

转载 作者:行者123 更新时间:2023-11-30 04:58:45 26 4
gpt4 key购买 nike

我正在尝试使用 spring 和 jaxb 调用简单的 XML over HTTP 服务。该服务的请求属性之一为

JAXB生成相应的java包装对象为

/**
* Gets the value of the version property.
*
* @return
* possible object is
* {@link String }
*
*/
public byte[] getVersion() {
return version;
}

/**
* Sets the value of the version property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setVersion(byte[] value) {
this.version = ((byte[]) value);
}

在这里,我的版本实际上是一个很长的内部版本,尽管服务将其定义为十六进制。我无法控制将类型从十六进制转换为无符号整数的服务实现。

在向服务发出请求时,我喜欢将版本号设置为 myBean.setVersion(12 as bytes),其中 12 只是一个长数字。如何将 long 转换为 byte[] 以便能够调用 setVersion();

谢谢,湿婆。

最佳答案

byte[] longToBytes(long value) {
final byte[] bytes = new byte[8];
for (int i = bytes.length - 1; i >= 0; i--) {
bytes[i] = (byte)(value & 0xFF);
value >>>= 8;
}
}

byte[] 的默认绑定(bind)是 xsd:base64Binary

你可以像这样改变它

@XmlElement
@XmlSchemaType(name="hexBinary")
public byte[] getVersion() {
return version;
}

关于java - JaxB - 设置 HexBinary 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7651696/

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