2013-08-18 1 views
2

Издание:не может найти символ (не распознают методы внутри GregorianCalendar)

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 (методы получают и набор не будет работать вообще). Я также искал stackoverflow и google, чтобы получить некоторую помощь по этой проблеме, но без каких-либо положительных результатов.

Пробовал переключение между 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

код Вы разместили в порядке. Я сильно подозреваю, что у вас есть еще один класс под названием 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 сломана.

+0

Hi Jon, Спасибо за ответ. Я новичок. Я понятия не имею, сделал ли я что-нибудь, о чем вы меня просили, но я набрал в командной строке 'echo $ CLASSPATH' , и он ничего не ответил. Я попытался явно указать типы и вставил ваш код, поэтому компиляция показывает мне 'error: имена классов, 'CalendarTest', принимаются только в том случае, если обработка аннотации запрошена явно. Итак, любая идея, как исправить это, поэтому мне не нужно явно указывать типы? – Patrick

+0

Хорошо, проблема в том, что я забыл ввести .java при компиляции. В любом случае, он работает. Не могли бы вы рассказать мне, как это исправить, так что я не буду указывать типы явно? Быстрое руководство было бы оценено. – Patrick

+0

@Patrick: Просто избавитесь от типа 'GregorianCalendar', который вы, очевидно, где-то попали. Посмотрите на все файлы Java в текущем каталоге - я предполагаю, что один из них объявляет «GregorianCalendar». –