在不同对象上添加事件监听器可以通过以下几种方法实现:
// 监听器接口
public interface MyListener {
void onEvent();
}
// 监听器实现类
public class MyListenerImpl implements MyListener {
@Override
public void onEvent() {
// 事件处理逻辑
}
}
// 示例对象1
public class Object1 {
private MyListener listener;
public void setListener(MyListener listener) {
this.listener = listener;
}
public void doSomething() {
// 触发事件
if (listener != null) {
listener.onEvent();
}
}
}
// 示例对象2
public class Object2 {
// 监听器实例
private MyListener listener = new MyListenerImpl();
public void doSomething() {
// 触发事件
listener.onEvent();
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Object1 obj1 = new Object1();
obj1.setListener(new MyListenerImpl());
obj1.doSomething();
Object2 obj2 = new Object2();
obj2.doSomething();
}
}
// 示例对象1
public class Object1 {
private MyListener listener;
public void setListener(MyListener listener) {
this.listener = listener;
}
public void doSomething() {
// 触发事件
if (listener != null) {
listener.onEvent();
}
}
// 内部类作为监听器
private class MyListenerImpl implements MyListener {
@Override
public void onEvent() {
// 事件处理逻辑
}
}
}
// 示例对象2
public class Object2 {
// 内部类作为监听器
private class MyListenerImpl implements MyListener {
@Override
public void onEvent() {
// 事件处理逻辑
}
}
public void doSomething() {
// 触发事件
MyListener listener = new MyListenerImpl();
listener.onEvent();
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Object1 obj1 = new Object1();
obj1.setListener(obj1.new MyListenerImpl());
obj1.doSomething();
Object2 obj2 = new Object2();
obj2.doSomething();
}
}
// 示例对象1
public class Object1 {
private MyListener listener;
public void setListener(MyListener listener) {
this.listener = listener;
}
public void doSomething() {
// 触发事件
if (listener != null) {
listener.onEvent();
}
}
}
// 示例对象2
public class Object2 {
public void doSomething() {
// 触发事件
MyListener listener = () -> {
// 事件处理逻辑
};
listener.onEvent();
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Object1 obj1 = new Object1();
obj1.setListener(() -> {
// 事件处理逻辑
});
obj1.doSomething();
Object2 obj2 = new Object2();
obj2.doSomething();
}
}
这些方法可以适用于不同的场景,选择合适的方法取决于具体的需求和设计。
上一篇:不同对象内的矩阵数学运算