我有一个名为 ClientRegistrationListener 的接口(interface)
public interface ClientRegistrationListener {
void onClientAdded(Client client);
}
我在主类中还有一个ClientRegistrationListener
的ArrayList
。在此列表中,我为我的类(class)添加监听器。
listeners.add(new PrintClientListener());
其中 PrintClientListener
是在此主类中创建的类</p>
class PrintClientListener implements ClientRegistrationListener, Serializable {
private static final long serialVersionUID = 2777987742204604236L;
@Override
public void onClientAdded(Client client) {
System.out.println("Client added: " + client.getName());
}
}
我的问题是如何用 Bank
类替换监听器
匿名类?
最佳答案
您可以通过在 new
调用后打开一个 block 来匿名实现该接口(interface):
listeners.add(new ClientRegistrationListener() {
@Override
public void onClientAdded(Client client) {
System.out.println("Client added: " + client.getName());
}
});
或者,更优雅的是,由于 ClientRegistrationListener
是一个函数式接口(interface)(即使它没有注释为接口(interface)),因此您可以使用 lambda 表达式匿名实现它:
listeners.add(client -> System.out.println("Client added: " + client.getName()));
关于java - 如何用Java中的匿名类替换监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70816575/