自己写的一个小程序。试试定时任务。需求也是自己想的。比较简单的一个程序。
需求。一个系统输入密码,当输入密码错误3次的时候,则需要等待5秒,5秒后才能再次输入,这样直到输入对为止。
写了两个类:
package com.liang.timerTest;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class SelfTest extends Thread {
public final static String PWD = "123";
private Timer timer;
private TimeScon scon;
private int size = 0;
private int maxTrue=3;
public static final int WAITTIME=5000;
private final static int BIG=1000;
public SelfTest() {
timer = new Timer();
scon=new TimeScon();
}
public void goWait() {
timer.schedule(new TimerTask() {
@Override
public void run() {
if(scon.judNum()){
this.cancel();
timer.purge();
}else{
scon.forAddNum();
}
}
}, new Date(), BIG);
}
public static void main(String[] args) {
SelfTest test=new SelfTest();
test.startScan();
}
public void startScan() {
while (true) {
System.out.println("输入密码:");
Scanner scann=new Scanner(System.in);
String inpwd=scann.nextLine();
if(PWD.equals(inpwd)){
break;
}
size++;
if(size==maxTrue){
this.goWait();
size=0;
try {
Thread.sleep(WAITTIME);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
System.out.println("It's over.");
timer.cancel();
}
}
package com.liang.timerTest;
public class TimeScon {
private int i=SelfTest.WAITTIME/1000;
public TimeScon() {
}
public void forAddNum(){
System.out.println("还有:"+i+" 秒");
i--;
}
public boolean judNum(){
if(i==0){
this.setI(SelfTest.WAITTIME/1000);
return true;
}else{
return false;
}
}
public void setI(int i) {
this.i = i;
}
}
代码过于简单。这里就不多说了。。。直接看吧。。。。有其它想法的可以留言交流。。。。