Java:如何确保接口方法不比X花费更多时间?

Jan*_*Jan 6 java interface

我有一个接口方法boolean right(),如果它在一秒钟内没有"回答",它应该返回false.

pol*_*nts 4

是的,这可以通过eg (表示类型异步计算结果的java.util.concurrent.Future<V>标准)与方法相结合来实现。该方法可能会抛出以及其他异常,但否则会在正常执行时返回计算结果。interfaceVget(long timeout, TimeUnit unit)TimeoutException

在这种情况下,您需要一个Future<Boolean>, 在get(1, TimeUnit.SECONDS)一个try-catch块内,TimeOutException根据您的规范进行处理。

可用的具体实现是FutureTask<V>SwingWorker<T,V>。如果这是在 Swing 应用程序的上下文中,那么您需要使用后者。

也可以看看