You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从CompositeData[]中获取JMSReplyTo与JMSCorrelationID

问题描述

我能打印消息的所有String属性,但不知道如何精准获取并分别显示JMSReplyTo和JMSCorrelationID。目前遍历所有键值对会输出大量多余的头信息,只需要获取这两个指定属性。现有代码如下:

for (CompositeData o : (Collection<CompositeData>) stringProps.values()) {
    System.out.println(o.get("key") + ": " + o.get("value"));
}

解决方案

方式一:遍历筛选指定属性

在遍历过程中判断属性键是否为目标值,只输出需要的内容:

import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import javax.management.openmbean.CompositeData;

// 指定需要获取的目标属性集合
Set<String> targetPropertyNames = new HashSet<>(Arrays.asList("JMSReplyTo", "JMSCorrelationID"));

for (CompositeData propData : (Collection<CompositeData>) stringProps.values()) {
    String propKey = (String) propData.get("key");
    if (targetPropertyNames.contains(propKey)) {
        System.out.println(propKey + ": " + propData.get("value"));
    }
}

方式二:直接按键获取(更高效)

如果stringProps是以属性名称为键的Map<String, CompositeData>,可以直接通过键精准取值,无需遍历全部元素:

import javax.management.openmbean.CompositeData;
import java.util.Map;

// 假设stringProps为Map<String, CompositeData>类型
Map<String, CompositeData> propsMap = (Map<String, CompositeData>) stringProps;

// 获取JMSReplyTo
CompositeData replyToData = propsMap.get("JMSReplyTo");
if (replyToData != null) {
    System.out.println("JMSReplyTo: " + replyToData.get("value"));
}

// 获取JMSCorrelationID
CompositeData correlationIdData = propsMap.get("JMSCorrelationID");
if (correlationIdData != null) {
    System.out.println("JMSCorrelationID: " + correlationIdData.get("value"));
}

内容的提问来源于stack exchange,提问作者VANISH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:07:29