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