getClass()
méthode est définie dans la classe Object avec la signature suivante:
public final Class getClass()
Car il n'est pas défini en tant que static
, vous ne pouvez pas appeler à l'intérieur d'une statique bloc de code. Voir la réponse à ces questions pour plus d'informations: T1, T2, T3.
Si vous êtes dans un contexte statique, alors vous devez utiliser la classe expression littérale pour obtenir la Classe, donc en gros, vous avez à faire comme:
Foo.class
Ce type d'expression est appelée Classe des Littéraux et ils sont expliqués en Langage Java Spécification de Livre comme suit:
Une classe littérale est une expression comprenant le nom d'une classe, une interface, une matrice, ou de type primitif suivi par un `.' et le jeton de classe. Le type d'une classe littérale est la Classe. Il correspond à la Classe de l'objet pour le type nommé (ou du vide), tel que défini par la définition du chargeur de classe de la classe de l'instance en cours.
Vous pouvez également trouver des informations sur ce sujet dans la documentation de l'API pour la Classe.