Код: Выделить всё
public class Main {
public static void main(String args[]) {
main((null)); // this is fine!
(main(null)); // this is NOT!
}
}
Вместо этого я ожидал чего-то вроде «Не заключай в круглые скобки вызов метода, дурачок!».
Так почему же компилятор выдвигает совершенно бесполезную жалобу на что-то явно не относящееся к делу?
Это результат двусмысленности в грамматике? Ошибка в компиляторе?
Если это первый вариант, можете ли вы разработать язык так, чтобы компилятор никогда не выходил из строя из-за такой синтаксической ошибки?< /p>
Хорошо, я только что проверил, и, видимо, эта жалоба видна только изнутри Eclipse. Если я компилирую из командной строки, это дает более разумную ошибку «Не утверждение». Тайна становится глубже.
Подробнее здесь: https://stackoverflow.com/questions/250 ... parenthese