Це зводиться до фактичного компілятора та його здатності розрізнити, що означає маркер у його контексті. Однак у цьому конкретному випадку полягає у нездатності компілятора розрізнити, що class
означає маркер у іншому контексті. Це жорстке і швидке правило, яке class
, незалежно від його контексту, використовується для позначення декларації класу, і як таке воно є зарезервованим словом. Це так само просто і настільки ж низько, як це виходить.
Якщо ви відчуваєте вимушеність, ви можете написати власний компілятор Java, щоб включити контекстне правило, яке дозволить вам використовувати class
як ім'я змінної. Хоча я думаю, було б набагато краще використовувати свій час просто використовувати clazz
або klass
- це, мабуть, було б добре і для вашого здоров’я.