Comment obtenir le classOf pour un type d’object Scala

Je me demande comment obtenir un object de classe pour un type d’object dans Scala. Ok, c’est une bouche pleine à cause de la double signification de l’object. Alors voici un exemple qui va échouer:

object Main { private [this] val TAG = classOf [Main].getName; } // Main 

Si Main était classe, cela fonctionne parfaitement. Des idées?

 scala> Main.getClass res1: java.lang.Class[_] = class Main$ 

La raison pour laquelle classOf[Main] ne fonctionne pas est parce que Main n’est pas un type .

Les classes et les traits définissent des types, mais pas les objects.

Puisque Main est un object, pour que votre exemple fonctionne, remplacez simplement votre ligne d’affectation par;

 private [this] val TAG = this.getClass.getName;