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