请求高手 问一下为什么我以下的这段程序获得的秒数始终不变的
import java.util.*;public class TestTimer
{
public static void main(String[] args)
{
final int i=0;
TimerTask task = new TimerTask(){public void run(){
System.out.println(calculation.getCSec());
}};
        Timer timer = new Timer() ;
        timer.schedule(task, 1000, 2000); }
}class calculation
{
static Calendar c = Calendar.getInstance();


static int getCHour()
{
return c.get(Calendar.HOUR_OF_DAY);
}        static int getCMin()
        {
             return c.get(Calendar.MINUTE);
        }
    
        static int getCSec()
        {
             return c.get(Calendar.SECOND);
        }
}
这是运行结果
E:\java>java TestTimer
30
30
30
30
30
30
30
30高手求救

解决方案 »

  1.   

    static Calendar c = Calendar.getInstance();是得到运行至当前代码时的Calendar类的对象,
    也就是说后面你返回的都是同一个时刻的时、分、秒。import java.util.*;public class TestTimer
    {
    public static void main(String[] args)
    {
    final int i=0;

    TimerTask task = new TimerTask(){public void run(){
    System.out.println(calculation.getCSec());
    }};

    Timer timer = new Timer() ;
    timer.schedule(task, 1000, 2000);

    }
    }class calculation
    {
    //static Calendar c = Calendar.getInstance();

    static int getCHour()
    {
    return Calendar.getInstance()..get(Calendar..HOUR_OF_DAY);
    //return c.get(Calendar.HOUR_OF_DAY);
    }

    static int getCMin()
    {
    return Calendar.getInstance().get(Calendar.MINUTE);
    //return c.get(Calendar.MINUTE);
    }

    static int getCSec()
    {
    return Calendar.getInstance()..get(Calendar.SECOND);
    //return c.get(Calendar.SECOND);
    }
    }