«Левая часть присваивания должна быть переменной» из-за дополнительных круглых скобокJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 «Левая часть присваивания должна быть переменной» из-за дополнительных круглых скобок

Сообщение Anonymous »

Я знаю, почему следующий код не компилируется:

Код: Выделить всё

public class Main {
public static void main(String args[]) {
main((null)); // this is fine!
(main(null)); // this is NOT!
}
}
Мне интересно, почему мой компилятор (javac 1.6.0_17, версия для Windows) жалуется: «Левая часть присваивания должна быть переменной».< /p>

Вместо этого я ожидал чего-то вроде «Не заключай в круглые скобки вызов метода, дурачок!».

Так почему же компилятор выдвигает совершенно бесполезную жалобу на что-то явно не относящееся к делу?

Это результат двусмысленности в грамматике? Ошибка в компиляторе?

Если это первый вариант, можете ли вы разработать язык так, чтобы компилятор никогда не выходил из строя из-за такой синтаксической ошибки?< /p>



Хорошо, я только что проверил, и, видимо, эта жалоба видна только изнутри Eclipse. Если я компилирую из командной строки, это дает более разумную ошибку «Не утверждение». Тайна становится глубже.

Подробнее здесь: https://stackoverflow.com/questions/250 ... parenthese
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»