我最近开始使用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)); } }
什么是编写此代码的正确方法?
答案 0 :(得分:1)
因为main方法是静态的,所以它意味着它不依赖于类的任何实例。为了能够在没有静态的情况下访问字段c1
和c2
,需要有一个类的实例:
TestsCalender cal = new TestsCalendar();
// access cal.c1 now
请注意,在您实际创建新的TestsCalendar实例之前,使用当前发布的代码,c1
和c2
实际上不会被创建为对象("构造")。
或者,如果它是一个小程序,您只需将字段标记为静态:
static Calendar c2 = new GregorianCalendar(2005, Calendar.OCTOBER, 13);