Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找到类的任何字段的更改值?_Java_Oop_Design Patterns_Event Handling - Fatal编程技术网

Java 如何找到类的任何字段的更改值?

Java 如何找到类的任何字段的更改值?,java,oop,design-patterns,event-handling,Java,Oop,Design Patterns,Event Handling,假设我有两个类A.java和B.java,在这样的类中有private int A: public class A { private int a; } 我在类B中使用这个类,我想知道这个类,或者在字段intA中附加一个处理程序; 要知道它的值在每个异步调用中都会发生变化。让我再解释一下: public class B { private A aClass; public static void main (String ... args) {

假设我有两个类
A.java
B.java
,在这样的类中有
private int A

public class A {
    private int a;
}
我在类B中使用这个类,我想知道这个类,或者在字段
intA
中附加一个处理程序; 要知道它的值在每个异步调用中都会发生变化。让我再解释一下:

public class B {
     private A aClass;

     public static void main (String ... args) {
           aClass = new A(); // now the int a; is changed how do I know this

           // user may call many asynchronous method in class A and I want to know
           // the changing value of int a; from A class in B class
     }
}
我应该使用哪种设计模式?你们提供什么解决方案

提前感谢,
肺门

B注册自己为A的观察者。A是主体,B是观察者


每当“a”改变时,a notify()将成为所有注册的观察者。

您可以将类a转换为a,并添加对PropertyListener的支持。 但是,首先必须向A()实例注册一个

在a中添加B对象,然后调用B的方法

public class A {
    private int a;
    private B observer;

    void setA(int i) {
        a = i;
        observer.notify();
    }

    void registerObserver(B b) {
        observer = b;
    }
}