Tudo se resume ao compilador real e sua capacidade de distinguir o que um token significa dentro de seu contexto. No entanto, nesse caso em particular, é incapacidade do compilador distinguir o que o token class
significa em um contexto diferente. É uma regra rígida e rápida que class
, independentemente de seu contexto, é usada para denotar a declaração de uma classe e, como tal, é uma palavra reservada . Isso é tão simples e tão baixo quanto possível.
Se você se sentir compelido, poderá escrever seu próprio compilador Java para incluir uma regra contextual que permitirá que você use class
como um nome de variável. Embora eu ache que seria muito melhor usar seu tempo apenas para usar clazz
ou klass
- provavelmente seria bom para sua saúde também.