Java获取原语类型的更改

Java获取原语类型的更改,java,Java,如果原语类型发生更改,是否有任何方法可以运行方法?在运行程序的任何时候都可以这样做吗? 所以我想要一个像ActionListener这样的东西,用于我想要的每个对象 编辑: 比如: boolean b=true; b.addActionListener(); public void actionPerformed(ActionEvent e){ bChanged(); } 因此,只是ActionLister不起作用您应该看看observer设计模式(很好的例子:) 事实上,当您想要得到通知,

如果原语类型发生更改,是否有任何方法可以运行方法?在运行程序的任何时候都可以这样做吗?
所以我想要一个像ActionListener这样的东西,用于我想要的每个对象

编辑: 比如:

boolean b=true;
b.addActionListener();

public void actionPerformed(ActionEvent e){
bChanged();
}

因此,只是ActionLister不起作用

您应该看看observer设计模式(很好的例子:)


事实上,当您想要得到通知,当对象或属性发生更改时,它非常有用。被监视的对象称为主体,当状态改变时,被通知的对象称为观察者。当状态发生变化时,主体会通知所有观察者此变化。

不,您不能。这是在Java中执行此操作的方式:

public class MyBoolean {

    private ActionEvent listener;
    private boolean b;

    public MyBoolean(ActionEvent e) {
        listener = e;
    }

    public void set(boolean value) {
        b = value;
        listener.changed(this);
    }

    public boolean get() {
        return b;
    }
}

需要更多的代码!让我们看看你想做什么。我个人会用一个倾听者,所以我认为你的思路是对的。不,没有办法做到这一点。您可以使用跟踪侦听器的包装器替换计数器,但您不能只将侦听器添加到任何随机对象或原语中。正如@LouisWasserman所提到的,不可能对原语执行此操作。但是,还有一些类实现了它们,这可能会为您提供所需的功能;上面将使用Boolean属性。(例如绑定到复选框。)这些~Property类对于您所想的用途非常有用。本教程使用ArrayList注册侦听器,但在大多数情况下CopyOnWriteArrayList是一个更好的对象。您不需要再与它同步或克隆读写操作。