Ответ 1
scala> Main.getClass
res1: java.lang.Class[_] = class Main$
Интересно, как получить объект класса для типа объекта в Scala. Хорошо, это рот, полный из-за двойного значения для объекта. Итак, вот пример, который потерпит неудачу:
object Main
{
private [this] val TAG = classOf [Main].getName;
} // Main
Если Main
был классом, он отлично работает. Есть идеи?
scala> Main.getClass
res1: java.lang.Class[_] = class Main$
Причина, по которой classOf[Main]
не работает, состоит в том, что Main
не тип .
Классы и черты определяют типы, объекты - нет.
Так как Main - это объект, для вашего примера для работы просто замените свою строку назначения:
private [this] val TAG = this.getClass.getName;