Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java if语句上的计时器?_Java_If Statement_Timer_Finch - Fatal编程技术网

Java if语句上的计时器?

Java if语句上的计时器?,java,if-statement,timer,finch,Java,If Statement,Timer,Finch,我正在做一个芬奇机器人项目,关于探测物体,在其中一个方法中,我必须做一个if语句,如果芬奇在5秒内探测到物体,我需要一个定时器类吗?请帮忙。Java新手 如果芬奇探测到一个物体,我们需要更多的代码来回答。如果检测对象的方法总是立即返回,则很容易保持循环状态,直到System.currentTimeMillis显示的数字比启动时大5000以上。但是,如果检测对象的方法在检测到某个对象之前(可能是20秒之后)不会返回,那么您将需要一些异步编程,以便能够在5秒的时间点将LED变为蓝色 这种方法将涉及旋

我正在做一个芬奇机器人项目,关于探测物体,在其中一个方法中,我必须做一个if语句,如果芬奇在5秒内探测到物体,我需要一个定时器类吗?请帮忙。Java新手


如果芬奇探测到一个物体,我们需要更多的代码来回答。如果检测对象的方法总是立即返回,则很容易保持循环状态,直到System.currentTimeMillis显示的数字比启动时大5000以上。但是,如果检测对象的方法在检测到某个对象之前(可能是20秒之后)不会返回,那么您将需要一些异步编程,以便能够在5秒的时间点将LED变为蓝色


这种方法将涉及旋转另一个线程来调用detect方法,然后等待,直到它检测到某个内容或经过5秒。您可以使用BlockingQueue进行从一个线程到另一个线程的通信,因为这也提供了定时等待。如果在5秒钟后你不关心检测到的对象,你可以让主线程中断检测线程,让它优雅地关闭。

你能给我们看一些代码吗?你可能会感兴趣,而不仅仅是简单的计时器。@Karoldowbeck我不确定这对Java新手来说是最好的方法,但可能是。
    while(true) {

        if(myfinch.isObstacle()== true){
            myfinch.setLED(0, 0, 255);
            myfinch.setWheelVelocities(0, 0); 
        }
        else {

            myfinch.setLED(0, 0, 0);
            random();


        }
    }

}