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;