java - 子类的抽象类的线程调用?
问题描述
嗨所以我有重复的代码,想摆脱它。我想摆脱调度程序调用 (scheduler.schedule(this::transition, 10, TimeUnit.SECONDS);) 因为它的复制粘贴代码。但我不知道如何将它放在抽象类中,以便在每个阶段都能正确执行。“this::transition”对我来说是不可能的。
public class Stage1 {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public void transition() {
...
scheduler.schedule(this::transition, 10, TimeUnit.SECONDS);
}
}
public class Stage2 {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public void transition() {
...
scheduler.schedule(this::transition, 10, TimeUnit.SECONDS);
}
}
public class Stage3 {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
public void transition() {
...
scheduler.schedule(this::transition, 10, TimeUnit.SECONDS);
}
}
解决方案
将调度业务逻辑提取到某个外部类并将其注入到您的Stage
类中 - 此调度程序应提供一些schedule
具有至少一个参数的方法 - 对应调度的方法的引用
推荐阅读
- mongodb - 无法使用 MongoDB Scala 驱动程序连接到 MongoDB
- javascript - 如何通过适当的身份验证使公众可以访问本地 mysql 服务器数据库
- excel - 如何从我的excel表中计算每天的总和?
- javascript - 从父对象中过滤嵌套对象
- kubernetes - 使用 StorageOS 的 Kubernetes 上的 FailedAttachVolume 错误
- excel - 如何从 btnclass 网络抓取中提取属性详细信息
- javascript - 在 knockout.js 中具有 2 个复选框的互补状态
- lisp - Common Lisp 值的防御性副本
- javascript - 如何停止循环数组的方法?
- laravel - 如何从控制器中访问 Laravel 响应对象?