gpt4 book ai didi

java - Java 中是否有一个功能可以确保该方法被调用

转载 作者:行者123 更新时间:2023-11-30 06:05:41 25 4
gpt4 key购买 nike

我使用类似于 builder/fluid API 的模式来配置一些计时服务。我知道它不是一个典型的构建器,但它看起来非常好,我想保持这种风格。

看起来像:

Action someAction = getAction();
someAction.shouldRunEvery(5).seconds();

最后一个动词可以是秒()、分钟()、毫秒()等。链中最后一个方法中的代码实际上将更改写入存储库。典型的错误(尽管我知道内部原理,但我已经犯了不止一次)是使用这样的方法:

someAction.shouldRunEvery(10);

有没有办法确保在对象上调用接口(interface)的函数?我可以使用 java 8/9 和/或其他库的任何功能。

补充1:流体 API 是如何生产的:

interface Action{ ActionUnit shouldRunEvery (int time);}
interface ActionUnit { void seconds(); void minutes(); ... etc.}

补充2:我试图研究异常(exception)情况,但不知道如何将它们缝合并保持整洁。

补充3:可能最好的答案是将 API 更改为如下所示:

someAction.shouldRunEvery(seconds(5));

但在这种情况下我失去了流动性。

最佳答案

Java 中没有好的方法,但仍然是可能的。您可以在这里找到“安全生成器”示例 Generator of Turing Machines that run on Java generic types 。该示例利用了 Java 泛型是图灵完备这一事实。您可以阅读原文(仅限俄语Тьюринг-полнота Generic типов Java)

但恐怕这对于现实生活来说太糟糕了。

关于java - Java 中是否有一个功能可以确保该方法被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45977001/

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