Все сводится к фактическому компилятору и его способности различать, что означает токен в его контексте. Однако, в данном случае, это компилятор неспособность различать то , что символические class
средства в другом контексте. Это жесткое и быстрое правило, которое class
независимо от его контекста используется для обозначения объявления класса, и как таковое оно является зарезервированным словом. Это так просто и так низко, как только может.
Если вы чувствуете необходимость, вы можете написать свой собственный компилятор Java, чтобы включить контекстное правило, которое позволит вам использовать class
в качестве имени переменной. Хотя я думаю, что было бы гораздо лучше использовать ваше время, чтобы просто использовать clazz
или klass
- это, вероятно, было бы полезно и для вашего здоровья.