找不到符号(不识别GregorianCalendar里面的方法)

时间:2013-08-18 19:19:56

标签: methods parameters arguments symbols gregorian-calendar

问题:

CalendarTest.java:9: error: cannot find symbol
    int today = d.get(Calendar.DAY_OF_MONTH);
                   ^
symbol:   method get(int)
location: variable d of type GregorianCalendar

我的代码:

import java.util.*;

public class CalendarTest
{
 public static void main(String[] args)
 {
    GregorianCalendar d = new GregorianCalendar();

    int today = d.get(Calendar.DAY_OF_MONTH);
 }
}  

所以,到目前为止我所做的是检查API(方法get和set根本不起作用)。 我也一直在搜索stackoverflow和谷歌以获得有关该问题的一些帮助,但没有任何积极的结果。

尝试在Java 6和Java 7之间进行切换而根本没有任何结果。 为Calendar而不是GregorianCalendar做这个,但问题仍然存在。

我在Ubuntu 12.04上运行。我不知道出了什么问题,因为这些方法都包含在GregorianCalendar类中(就API而言)

此外,

CalendarTest.java:8: error: constructor GregorianCalendar in class GregorianCalendar cannot be applied to given types;
GregorianCalendar asd = new GregorianCalendar(2000, 10, 25);
                        ^
required: no arguments
found: int,int,int
reason: actual and formal argument lists differ in length

也行不通。它说参数(int,int,int)是错误的。那不应该,不应该吗?

请帮助我解决这个问题,因为我无法继续前进(做核心JAVA 2基础知识)

1 个答案:

答案 0 :(得分:1)

您发布的代码很好。我强烈怀疑你的类路径上有另一个名为GregorianCalendar的类。我建议你找它并删除它。请注意,Calendar.DAY_OF_MONTH本身似乎可以正确找到。

您可能想要尝试的一件事(仅查看哪个包有错)是明确指定类型:

java.util.GregorianCalendar d = new java.util.GregorianCalendar();
int today = d.get(java.util.Calendar.DAY_OF_MONTH);

我怀疑它会起作用,在这种情况下你应该在默认包中寻找GregorianCalendar类型。

如果仍然不起作用,则表明您的Java安装已损坏。