Java JMX MXBean枚举处理转换错误

Java JMX MXBean枚举处理转换错误,java,enums,jmx,mbeans,Java,Enums,Jmx,Mbeans,当使用枚举作为MXBean中映射的值组件时,似乎我在转换枚举时遇到了困难 public enum MyEnum { EnumVal1, EnumVal2, EnumVal3 }; public interface MyMXBean { Map<String,MyEnum> getEnumMap(); } MyMXBean proxy = JMX.newMBeanProxy(ManagementFactory.getPlatformMBeanServer(), ne

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

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");
公共枚举MyEnum{
枚举1、枚举2、枚举3
};
公共接口MyMXBean{
映射getEnumMap();
}
MyMXBean proxy=JMX.newMBeanProxy(ManagementFactory.getPlatformMBeanServer(),新对象名(“MyMXBeanObjectName”),MyMXBean.class);
MyEnum retval=proxy.getEnumMap().get(“key”);
在这种情况下,我收到的异常是(编辑:我后来意识到,此异常是由于TablerDataSupport希望对象[]作为关键参数。)

无法将java.lang.String转换为[Ljava.lang.Object

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


如果代理应该表示原始接口,那么代理调用是否应该与接口调用相同?

问题在于您选择的是MBean代理,而不是MXBean代理

试用

MyMXBean proxy = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class);