在学习JAVA时经常有一些资料的示例代码不太完整,导致按照示例代码输入完整后,却编译不过的情况;如以下有关Calendar的代码(经常会困扰一些初学者):
public class CalendarTest
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
//取出年
System.out.println(c.get(Calendar.YEAR));
//取出月份
System.out.println(c.get(Calendar.MONTH));
//取出日
System.out.println(c.get(Calendar.DATE));
//分别设置年、月、日、小时、分钟、秒
c.set(2003, 10, 23, 12, 32, 23);//2003-11-23 12:32:23
System.out.println(c.getTime());
//将Calendar的年前推1年
c.add(Calendar.YEAR, -1);
System.out.println(c.getTime());
//前推8个月
c.roll(Calendar.MONTH, -8);
System.out.println(c.getTime());
}
}
编译时会遇到如下“找不到符号”的编译提示:
当然对于以上的问题,大家查一下API文档就知道,Calendar在java.util.包下,import一下就可以了,
import java.util.Calendar;
但之后还会提示“YEAR”、“MONTH”、“DATE”等找不到的提示,其实这里的示例代码就使用了“静态导入”;静态导入后就可以直接使用:“YEAR”、“MONTH”、“DATE”等变量了,此示例代码的完整说明如下:
import java.util.Calendar;
import static java.util.Calendar.YEAR;
import static java.util.Calendar.MONTH;
import static java.util.Calendar.DATE;
public class CalendarTest
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
//取出年
System.out.println(c.get(Calendar.YEAR));
//取出月份
System.out.println(c.get(Calendar.MONTH));
//取出日
System.out.println(c.get(Calendar.DATE));
//分别设置年、月、日、小时、分钟、秒
c.set(2003, 10, 23, 12, 32, 23);//2003-11-23 12:32:23
System.out.println(c.getTime());
//将Calendar的年前推1年
c.add(Calendar.YEAR, -1);
System.out.println(c.getTime());
//前推8个月
c.roll(Calendar.MONTH, -8);
System.out.println(c.getTime());
}
}
备注:以上代码在JDK1.8环境中编译通过。