}
}
}
3,循环炸的思路
(1)在定时器 内部再装一个炸弹。
[java]
package com.thread;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Time {
@SuppressWarnings("deprecation")
public static void main(String[] main){
// new TimerTask(){// 可以用 this代替。但是:炸弹已经扎完了 就会在炸了。必须用新的炸弹。
// 必须 用新的炸弹。
// 所以:必须把这个 匿名类 改成有 有名字的。
new Timer().schedule(new TimerTask(){// 可以用 this代替。但是:炸弹已经扎完了 就会在炸了。必须用新的炸弹。
@Override
public void run() {
System.out.println("bombing");
// 在装个 定时器。
new Timer().schedule(
new TimerTask(){
@Override
public void run() {
System.out.println("bombing");
}
},
/*this,*/2000);
}
}, 2000);// 两秒以后炸。
while(true){
int seconds = new Date().getSeconds();
System.out.println(seconds);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.thread;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Time {
@SuppressWarnings("deprecation")
public static void main(String[] main){
// new TimerTask(){// 可以用 this代替。但是:炸弹已经扎完了 就会在炸了。必须用新的炸弹。
// 必须 用新的炸弹。
// 所以:必须把这个 匿名类 改成有 有名字的。
new Timer().schedule(new TimerTask(){// 可以用 this代替。但是:炸弹已经扎完了 就会在炸了。必须用新的炸弹。
@Override
public void run() {
System.out.println("bombing");
// 在装个 定时器。
new Timer().schedule(
new TimerTask(){
@Override
public void run() {
System.out.println("bombing");
}
},
/*this,*/2000);
}
}, 2000);// 两秒以后炸。
while(true){
int seconds = new Date().getSeconds();
System.out.println(seconds);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
结果:在没有用this代替时,炸到第二次就不再炸了,若想达到这样的结果:必须再装一个炸弹,而我们这时就可以用this代替,注释里面已经阐述说明,就不再重复了。
显然:用this是不可以的。
4,我们来 new 一个类 用这个类来设计 1千,一万个对象,就可以了。匿名类只能new 一个对象 new 完之后这个类就找不回来了。所以:要改成 有名字的。
[java]
new TimerTask() 可以用 this代替。但是:炸弹已经扎完了 就不会在炸了。必须用新的炸弹。
// 必须 用新的炸弹。
// 所以:必须把这个 匿名类 改成有 有名字的。
new TimerTask() 可以用 this代替。但是:炸弹已经扎完了 就不会在炸了。必须用新的炸弹。
// 必须 用新的炸弹。
// 所以:必须把这个 匿名类 改成有 有名字的。这样做就可以了:
[java]
package com.itm.thread;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class TraditionalTimerTest {
/**
* @param args
*/
public static void main(String[] args) {
class MyTimerTask extends TimerTask {
@Override
public void run() {
System.out.println("bombing");
new Timer().schedule(/*new TimerTask(){
@Override
public void run() {
System.out.println