Setting 监听 一个 int 值
时间: 2023-11-22 12:53:37 浏览: 35
可以使用 Java 中的 Observer 模式来监听一个 int 值。
首先,定义一个 Subject 类,该类维护一个 int 值和一组 Observer 对象,用于通知它们 int 值的变化。
```java
import java.util.ArrayList;
import java.util.List;
public class Subject {
private int value;
private List<Observer> observers = new ArrayList<>();
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
notifyObservers();
}
public void attach(Observer observer) {
observers.add(observer);
}
public void detach(Observer observer) {
observers.remove(observer);
}
public void notifyObservers() {
for (Observer observer : observers) {
observer.update(this);
}
}
}
```
然后,定义一个 Observer 接口,其中包含一个 update 方法,用于接收 Subject 对象的通知。
```java
public interface Observer {
void update(Subject subject);
}
```
最后,实现一个具体的 Observer 类,它将在 Subject 对象的值发生变化时打印出新的值。
```java
public class ConcreteObserver implements Observer {
@Override
public void update(Subject subject) {
System.out.println("New value: " + subject.getValue());
}
}
```
现在,可以创建一个 Subject 对象,并向其添加一个 Observer 对象。然后,可以调用 Subject 对象的 setValue 方法来改变其值,从而触发 Observer 对象的 update 方法。
```java
public class Main {
public static void main(String[] args) {
Subject subject = new Subject();
subject.attach(new ConcreteObserver());
subject.setValue(123);
}
}
```
运行上面的代码,将输出以下内容:
```
New value: 123
```