当将枚举用作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代理时枚举类型应隐式转换是不正确的,还是我在提取信息方面缺少某些东西?
给定代理应该代表原始接口,代理调用是否应该与接口调用相同?
最佳答案
问题是您选择的是MBean代理而不是MXBean代理。
尝试使用
MyMXBean proxy = JMX.newMXBeanProxy(ManagementFactory.getPlatformMBeanServer(), new ObjectName("MyMXBeanObjectName"), MyMXBean.class);
关于java - JMX MXBean枚举处理转换错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7341730/