Как получить classOf для типа объекта Scala - PullRequest
56 голосов
/ 09 марта 2012

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

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

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

Ответы [ 3 ]

83 голосов
/ 09 марта 2012
scala> Main.getClass
res1: java.lang.Class[_] = class Main$
17 голосов
/ 09 марта 2012

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

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

9 голосов
/ 09 марта 2012

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

private [this] val TAG = this.getClass.getName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...