例如我现在有一个类class Instance {
public Listener mListener;

public void setListener(Listener l) {
mListener = l;
}
}还有一个接口interface Listener {
public void onListen();
}那么我实现多个Instance实例后,想触发某个实例的接口,只能调用某个实例,然后再调用它的接口public class Main {
public static void main(String[] args) { Instance instance1 = new Instance();
instance1.setListener(new Listener() {
@Override
public void onListen() {
System.out.println("instance 1");
}
}); Instance instance2 = new Instance();
instance2.setListener(new Listener() {
@Override
public void onListen() {
System.out.println("instance 2");
}
}); new Timer().schedule(new TimerTask() {
@Override
public void run() {
instance1.mListener.onListen();
instance2.mListener.onListen();
}
}, 0, 1000);
}
}
那么我现在有几个问题:1.Java里面的listener都是这样每次触发都调用指定的实例吗?例如我一个JFrame有多个JButton实例,而且都注册了ActionListener。那么触发的时候也是系统调用某个具体的JButton实例的接口的方法,而不是通过一次操作让所有接口响应?2.如果我想让Main2类实现了接口,然后setListener(this),这种写法应该怎么做?
public class Main2 implements Listener {
Instance instance3;
Instance instance4; public static void main(String[] args) {
new Main2();
} public Main2() {
instance3 = new Instance();
instance3.setListener(this); instance4 = new Instance();
instance4.setListener(this); new Timer().schedule(new TimerTask() {
@Override
public void run() {

}
}, 0, 1000);
} @Override
public void onListen() {

}
}