Как предотвратить использование чисел (0-9) в качестве переменных в JAVA? - PullRequest
0 голосов
/ 30 декабря 2011

В JAVA (и на всех когда-либо изобретенных языках программирования) мы не можем использовать числа в качестве переменных.

Итак, мне было интересно, как разработчики «языка Java» достигли этого.Как я вижу, единственный способ добиться этого состоит в том, что где-то объявляется, что имя переменной не может быть только числом.

Можем ли мы увидеть код, где это сделано?Или числа типа 1,2,3 .. объявлены как «static final» где-то в базовой функциональности языка программирования Java?

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

Ответы [ 3 ]

8 голосов
/ 30 декабря 2011

Это обеспечивается компилятором.

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

Вам понадобится исходный код компилятора, чтобы увидеть, как это делается.Вы можете получить его одним компилятором из проекта OpenJDK, здесь (благодаря ответу Брайана Агнью).

1 голос
/ 30 декабря 2011

Чтобы добавить к замечательному ответу @ Oded, здесь - это грамматика Си (в этом отношении она ничем не отличается от Java).Имена переменных должны быть identifier, а целое число должно быть integer_constant.Обратите внимание, что identifier не может начинаться с цифры, в то время как integer_constant должен.

1 голос
/ 30 декабря 2011

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

...