Подтвердить что ты не робот

Как получить classOf для типа объекта scala

Интересно, как получить объект класса для типа объекта в Scala. Хорошо, это рот, полный из-за двойного значения для объекта. Итак, вот пример, который потерпит неудачу:

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

Если Main был классом, он отлично работает. Есть идеи?

4b9b3361

Ответ 1

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

Ответ 2

Причина, по которой classOf[Main] не работает, состоит в том, что Main не тип .

Классы и черты определяют типы, объекты - нет.

Ответ 3

Так как Main - это объект, для вашего примера для работы просто замените свою строку назначения:

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