— Синтаксическая ошибка в токене «.», @ ожидается после этого токена

#java #eclipse #syntax-error

#java #eclipse #синтаксическая ошибка

Вопрос:

Мое Eclipse отлично работало пару дней назад перед обновлением Windows. Теперь я получаю сообщения об ошибках всякий раз, когда пытаюсь что-либо сделать в Eclipse. Просто простая программа, поскольку она отобразит кучу сообщений об ошибках:

 package lab6;

public class Hellomsg {
    System.out.println("Hello.");

}
  

Это ошибки, которые я получаю в той же строке, что и мой

 "System.out.println":
"Multiple markers at this line

- Syntax error, insert ")" to complete MethodDeclaration
- Syntax error on token ".", @ expected after this token
- Syntax error, insert "Identifier (" to complete MethodHeaderName"
  

Комментарии:

1. У вас есть вызов метода вне метода, который невозможен

2. И я уверен, что он также не работает до обновления Windows

3. упомянутый вами код не должен был работать никогда. Итак, когда вы говорите, что Eclipse пару дней назад работал нормально, просто хочу проверить, не привели ли вы неправильный пример или?

Ответ №1:

Вы не можете просто иметь операторы, плавающие в середине классов в Java. Вам либо нужно поместить их в методы:

 package lab6;

public class Hellomsg {
    public void myMethod() {
         System.out.println("Hello.");
    }
}
  

Или в static блоках:

 package lab6;

public class Hellomsg {
    static {
         System.out.println("Hello.");
    }
}
  

Комментарии:

1. Кто, черт возьми, дал -1 этому ответу? Это лучший ответ здесь

2. Боже мой. У меня было много проблем с eclipse, прежде чем я получил эту проблему. Когда я решал предыдущие проблемы, я получал эти сообщения об ошибках, потому что я полностью забыл, как писать простейший код. Мне очень стыдно. Спасибо, что разбудили меня.

3. К сожалению, я не могу удалить этот вопрос сейчас, поэтому теперь это постоянный символ того, что я полный новичок.

Ответ №2:

У вас не может быть операторов вне блоков или методов инициализатора.

Попробуйте что-то вроде этого:

 public class Hellomsg {
    {
        System.out.println("Hello.");
    }
}
  

или это

 public class Hellomsg {
    public void printMessage(){
        System.out.println("Hello.");
    }
}
  

Ответ №3:

У вас есть вызов метода вне метода, который невозможен.

Правильный код выглядит так:

 public class Hellomsg {
  public static void main(String[] args) { 
    System.out.println("Hello.");
    }
}
  

Ответ №4:

Только что я тоже столкнулся с той же проблемой, поэтому я думаю, что могу ответить на этот вопрос.

Вы должны написать код внутри методов, а не в классе, класс обычно используется для выполнения некоторой инициализации переменных и методов записи.

Итак, для вашей проблемы я просто добавляю ваш оператор внутри функции main.

 package lab6;
public class Hellomsg {
  public static void main(String args[]){
    System.out.println("Hello.");
  }
}
  

Выполните вышеуказанное, теперь код будет работать.