首页 > 解决方案 > 创建一个接受 Runnable 但包含更好控制的类

问题描述

我想创建这样的结构化代码:

EventWrapper.newWrapper().
    ifThen(isSunday(), 
            () -> announceSunday()).
    pauseFor(Duration.ofSeconds(10)).
    addAsyn(() -> System.out.println("Asynch System out")),
    add(() -> System.out.println("Sync System out")).execute();

我想要多个函数,例如 pauseFor 暂停此 Wrapper 的执行,addAsyn 执行 runnable 但使用线程池,add 执行 runnable 但其他函数等到 runnable 的内容被执行以及 ifThen 接受布尔条件如果为真,则执行给定的可运行文件。

到目前为止,我的代码基于我在这里所做的前一篇文章(非常感谢)如下:

public class EventWrapper
{
    private final List<Runnable> _wrappers = new ArrayList<>();

    public EventWrapper add(final Runnable runnable)
    {
        _wrappers.add(runnable);
        return this;
    }

    public void execute()
    {
        _wrappers.forEach(Runnable::run);
    }

    public static EventWrapper newWrapper()
    {
        return new EventWrapper();
    }
}

关于如何在此类中添加这些功能并在执行时能够控制我提到的方式,是否有任何想法?非常感谢。

标签: java

解决方案


推荐阅读