Как перечислить все объекты в объекте Scala? - PullRequest
0 голосов
/ 12 февраля 2020

Итак, я определил несколько объектов в my_object. Я могу сделать import my_package._ и получить доступ ко всем, или я могу сделать import my_package.{Obj1, Obj2}.

Я хочу перечислить их все и получить их имена. Я могу сделать val my_list = List(Obj1, Obj2).map(_.toString()), но перечисление их вручную - это не- go.

Как я могу произвести my_list без объявления объектов по отдельности?

1 Ответ

2 голосов
/ 12 февраля 2020

Рассмотрим отражение и isModule метод

Представляет ли этот символ определение модуля (т. Е. Он является результатом определения объекта?).

например

object Qux {
  object Bar1
  object Bar2
  object Bar3
}

scala.reflect.runtime.currentMirror
  .classSymbol(Qux.getClass)
  .info
  .members
  .filter(_.isModule)
  .map(_.name.toString)
  .toList

дает

res1: List[String] = List(Bar3, Bar2, Bar1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...