CompositeData没有keys()方法?

发布于 2024-07-09 05:01:53 字数 442 浏览 15 评论 0原文

我正在使用 JMX 保存来自远程进程的一些诊断信息。 查看jconsole中的接口显示返回类型为 CompositeData (数据实际上返回为 复合数据支持)。 我想输出与该对象关联的所有键/值对。

问题是该接口似乎只有一个“values()”方法,无法获取键。 我在这里错过了什么吗? 还有其他方法可以完成这项任务吗?

谢谢!

I'm using JMX to save some diagnostic information from a remote process. Looking at the interface in jconsole shows that the return type is CompositeData (the data actually comes back as CompositeDataSupport). I want to output all the key/value pairs that are associated with this object.

The problem is that the interface just seems to have a "values()" method with no way of getting the keys. Am I missing something here? Is there some other way to approach this task?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

诺曦 2024-07-16 05:01:53

如果我没有记错的话,你可以这样做

Set< String > keys = cData.getCompositeType().keySet();

(假设 cData 是一个 CompositeData 对象)

http://java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/CompositeType.html#keySet()

If I'm not mistaken you could do

Set< String > keys = cData.getCompositeType().keySet();

(given that cData is a CompositeData object)

http://java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/CompositeType.html#keySet()

み格子的夏天 2024-07-16 05:01:53

您可以通过这个打印所有 JVM MBean 属性的小程序找到更完整的示例

特别是:

StringBuffer writeCompositeData(StringBuffer buffer, 
            String prefix, String name, CompositeData data) {
        if (data == null)
            return writeSimple(buffer,prefix,name,null,true);
        writeSimple(buffer,prefix,name,"CompositeData("+
                data.getCompositeType().getTypeName()+")",true);
        buffer.append(prefix).append("{").append("\n");
        final String fieldprefix = prefix + " ";
        for (String key : data.getCompositeType().keySet()) {
            write(buffer,fieldprefix,name+"."+key,data.get(key));
        }
        buffer.append(prefix).append("}").append("\n");
        return buffer;
    }

部分:

for (String key : data.getCompositeType().keySet()) {
    [...] data.get(key) [...];
}

成为你所追求的。

You can find a more complete example with this small program that prints the attributes of all JVM MBeans

In particular:

StringBuffer writeCompositeData(StringBuffer buffer, 
            String prefix, String name, CompositeData data) {
        if (data == null)
            return writeSimple(buffer,prefix,name,null,true);
        writeSimple(buffer,prefix,name,"CompositeData("+
                data.getCompositeType().getTypeName()+")",true);
        buffer.append(prefix).append("{").append("\n");
        final String fieldprefix = prefix + " ";
        for (String key : data.getCompositeType().keySet()) {
            write(buffer,fieldprefix,name+"."+key,data.get(key));
        }
        buffer.append(prefix).append("}").append("\n");
        return buffer;
    }

The part:

for (String key : data.getCompositeType().keySet()) {
    [...] data.get(key) [...];
}

being what you are after.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文