java定时器代码不工作
计时器Java代码不工作
public interface IncDec
{
void increment();
void decrement();
}
public class MyIncDec implements IncDec
{
private int x;
public MyIncDec(int x) {
this.x = x;
}
public void increment() {
this.x++;
}
public void decrement() {
this.x--;
}
}
第1部分:实现一个类,该类可用于测量每次调用递增和递减方法所需的时间(在 毫秒)并打印出这些信息。该类应该或多或少透明地适应IncDec接口的现有客户机
我的解决方案:
public class Test{
public static void main(String[] args){
MyIncDec mid = new MyIncDec(4);
long l1;
long l2;
l1 = Calendar.getInstance().getTimeInMillis();
mid.increment();
l2 = Calendar.getInstance().getTimeInMillis();
System.out.println(l2-l1);
}
}
我的解给出的时间差为0。当我在调用“increment”后显示n之前的长值时,它们是相同的。为什么
假设我在应用程序中的很多地方都需要类似的东西(方法调用的时间)。一个想法是为所有不同的方法编写一个单独的计时器类。是否有人有其他优化的想法来更方便地获得计时
# 1 楼答案
首先,你的时差是0,因为它可能需要不到1毫秒的时间来运行。尝试在
increment
方法中添加一个Thread.sleep(50)
,看看是否有变化其次,你的家庭作业可能希望你在课堂上使用
IncDec
接口来计算你的时间。所以要考虑到这一点。一定要了解什么是接口,它们用于什么,更重要的是,它们是如何使用的祝你好运
# 2 楼答案
我认为你的作业是建议你利用Proxy Pattern
我不会给出完整的解决方案,但这里有一个提示:
然后使用MyIncDecProxy类而不是MyIncDec
# 3 楼答案
mid.increment()
。或者以纳秒为单位测量时间李>