2 回答

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊
我的猜測是您并不是真的想將 the 轉(zhuǎn)換BytesMessage為 a TextMessage,而只是想將 the 中的字節(jié)數(shù)組轉(zhuǎn)換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();
}
}
}
當(dāng)然,bytesMessage每次循環(huán)都需要不同的消息。

TA貢獻(xiàn)1842條經(jīng)驗 獲得超21個贊
查看BytesMessage的 API 文檔可能會揭示一種可能的方法。除此之外,簡單地從消息中讀取字節(jié)并使用new String(bytes, charset)
是一種選擇。
檢查傳入消息以確定類型是否符合您的期望通常是個好主意。
if?(message?instanceof?TextMessage)?...
這樣你就可以適當(dāng)?shù)靥幚碡?fù)面案例。
添加回答
舉報