2 回答
TA贡献1856条经验 获得超5个赞
我的猜测是您并不是真的想将 the 转换BytesMessage为 a TextMessage,而只是想将 the 中的字节数组转换BytesMessage为 a String。如果是这样,那么您可以使用如下代码:
List<String> outputList = new ArrayList<String>();
while (loop) {
if (bytesMessage instanceof BytesMessage) {
BytesMessage msgResponse = (BytesMessage) bytesMessage;
if (msgResponse.getBodyLength() == 0) {
loop = false;
} else {
byte[] bytes = new byte[(int) msgResponse.getBodyLength()];
msgResponse.readBytes(bytes);
outputList.add(new String(bytes));
msgResponse.acknowledge();
}
}
}
当然,bytesMessage每次循环都需要不同的消息。
TA贡献1842条经验 获得超21个赞
查看BytesMessage的 API 文档可能会揭示一种可能的方法。除此之外,简单地从消息中读取字节并使用new String(bytes, charset)
是一种选择。
检查传入消息以确定类型是否符合您的期望通常是个好主意。
if (message instanceof TextMessage) ...
这样你就可以适当地处理负面案例。
添加回答
举报