如何在主函数上正确比较格里高利历的两个日期

时间:2014-06-16 03:15:49

标签: java

我最近开始使用Java,我正在关注一个webtutorial,我只是遇到了这个错误:

Cannot make a static reference to the non-static field c1 Cannot make a static reference to the non-static field c2

我申请的代码:

import java.util.Calendar;
import java.util.GregorianCalendar;

public class TestsCalendar {
    Calendar c1 = new GregorianCalendar(2005, Calendar.OCTOBER, 12);
    Calendar c2 = new GregorianCalendar(2005, Calendar.OCTOBER, 13);

    public static void main (String[] args) {
        System.out.println(c1.after(c2)); } }

什么是编写此代码的正确方法?

1 个答案:

答案 0 :(得分:1)

因为main方法是静态的,所以它意味着它不依赖于类的任何实例。为了能够在没有静态的情况下访问字段c1c2,需要有一个类的实例:

TestsCalender cal = new TestsCalendar();
// access cal.c1 now

请注意,在您实际创建新的TestsCalendar实例之前,使用当前发布的代码,c1c2实际上不会被创建为对象("构造")。

或者,如果它是一个小程序,您只需将字段标记为静态:

static Calendar c2 = new GregorianCalendar(2005, Calendar.OCTOBER, 13);