java - 满足条件时使 boolean 值 true 持续 x 秒,然后将其恢复为 false

标签 java boolean

我正在制作一个 boolean,因此如果满足特定条件,它将返回 true 3 秒,但之后它会再次返回 false。

原来如此

private boolean timedBoolean() {

         if(//condition to set boolean true){ 
            return true;
         }

        //if condition isn't met for 3 seconds
         return false;
     }

我已经考虑了一个小时了。在我问之前研究过 SO。

最佳答案

记住你的 3 秒周期开始的时刻:

private volatile long start;

并让方法检查耗时:

private boolean timedBoolean() {
    if (conditionMet()) {
      start = System.nanoTime();
      return true;
    }
    return System.nanoTime()-start < TimeUnit.SECONDS.toNanos(3);
}

关于java - 满足条件时使 boolean 值 true 持续 x 秒,然后将其恢复为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20346488/

相关文章:

java - 尝试从 COM 端口读取会使 JVM 崩溃

PHP 比较运算符和 if (!foo()) 形式的语句

python - Pandas 中 boolean 索引的逻辑运算符

java - 是否有任何基于 Spring-Security 的 Java 生产就绪安全包?

java - 删除以 ! 开头的单词

java - 如何向 GXT 网格添加行

java - boolean 方法检查字符串是否可以解析为 int

c++ - 为什么将 int 转换为 bool 会发出警告?

Swift boolean 检查

java - 我可以在实体类中有一个方法而不映射到数据库吗