【问题标题】:How to modify an attribute which have a no-primitive data type with JMX?如何使用 JMX 修改具有非原始数据类型的属性?
【发布时间】:2026-01-30 23:20:09
【问题描述】:

我想知道是否可以通过 jConsole 修改 java.awt.Color 属性。 我有这样的课:

public class MyColor implements MyColorMBean {
    private Color background;

    public Color getBackground() {
        return background;
    }

    public void setBackground(Color background) {
        this.background = background;
    }
}

实现了这个 MBean:

public interface MyColorMBean {
    public Color getBackground();
    public void setBackground(Color background);
}

当我尝试为背景设置另一个值时(例如 Color.GREEN),它不起作用...但是当我将背景类型设置为字符串时,它起作用了!

是否可以使用 JMX 更改非原始数据类型?

谢谢:)

【问题讨论】:

    标签: java swing jmx jconsole mbeans


    【解决方案1】:

    这是控制台的限制。如果您使用编程接口,它会起作用。我会将 Color 和 String 类型的方法添加到 Mean 中(使用不同的名称)。

    【讨论】:

    • 嗨 Nicholas,谢谢您的回答 :) 但是您对编程接口有什么想说的?除了 JConsole,我是否必须使用适配器或类似的东西?
    • 嗨巴蒂斯特;像docs.oracle.com/javase/1.5.0/docs/guide/jmx/examples/Basic/… 这样的程序化客户端可以按照您的描述进行操作。 JConsole 只限于解释您输入到目标类型中的字符串值。