是的,它们实际上并不存在,但我们可以使用多态性、方法重载和默认方法来代替,使我们的 API 使用起来更方便一些。
例如,这是一个事件总线实现,我可以在其中使用可选的标头参数注册事件处理程序。
Bus bus = new Bus();
bus.register(event -> System.out.println("I gots an event"));
bus.register((event,header) -> System.out.println("I gots an event w/ header"));
以下 是有关如何执行此操作的详细信息(以及 - 在分派 - 事件时,使用默认方法来避免类型强制转换。