How the get the classOf for a scala object type
I wonder how to get a class object for an object type in Scala. Ok, that is a mouth full because of the double meaning for object. So here an example which will fail:
object Main
{
private [this] val TAG = classOf [Main].getName;
} // Main
If Main
was class it works perfectly. Any ideas?
scala> Main.getClass
res1: java.lang.Class[_] = class Main$
The reason why classOf[Main]
doesn't work is because Main
is not a type.
Classes and traits define types, objects do not.
Since Main is an object, for your example to work, simply replace your assignment line with;
private [this] val TAG = this.getClass.getName;