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;