gpt4 book ai didi

java - 是否可以声明一个自执行的runnable?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:01 26 4
gpt4 key购买 nike

像这样吗?

abstract public class BaseTask extends Runnable {
public BaseTask(ParamA aParam) {
// do something with aParam
StaticExecutorService.submit(this);
}
}

public class AbcTask extends BaseTask {
public ABC(ParamA aParam, ParamB bParam) {
super(aParam);
}
@Override
public void run() {

}
}

然后可以通过执行

创建类并排队等待执行
new AbcTask();
  1. 我不确定这是否可以,因为当 ExecutorService 决定执行 AbcTask 时它可能仍在构造中?

  2. 如果您出于任何原因不推荐此功能,请说明并详细说明。

谢谢

最佳答案

这可能行得通(至少,我对 Java 不够熟悉,不知道为什么行不通),但我不推荐它,因为它引入了太强的耦合:AbcTask 会绑定(bind)到 StaticExecutorService 并且可重用性不如它很容易实现。这也会使 AbcTask 更难测试和调试。

此外,您通过将对执行者的提交折叠到其中来“重载”对象构造的含义。如果稍后您决定要在构建和提交对象之间对 AbcTask 对象执行某些操作,该怎么办?

关于java - 是否可以声明一个自执行的runnable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com