0

当在 MXBean 中使用枚举作为 Map 的值组件时,似乎我在转换枚举时遇到了困难。

public enum MyEnum {
    EnumVal1, EnumVal2, EnumVal3
};

public interface MyMXBean {
    Map<String,MyEnum> getEnumMap();
}

MyMXBean proxy = JMX.newMBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class);
MyEnum retval = proxy.getEnumMap().get("key");

在这种情况下我收到的异常是(编辑:已经意识到这个异常是由于 tabularDataSupport 期望 Object[] 作为关键参数。)

java.lang.String 不能转换为 [Ljava.lang.Object;

所以我的问题是,我是否理解枚举类型在使用 JMX 代理时应该隐式转换不正确,还是我在提取信息方面遗漏了什么?

鉴于代理应该代表原始接口,代理调用是否应该与接口调用相同?

4

1 回答 1

1

问题是您选择的是 MBean 代理而不是 MXBean 代理。

尝试使用

MyMXBean proxy = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class); 
于 2011-09-08T00:51:16.130 回答