Как читать документацию Scala, используя отражение - PullRequest
1 голос
/ 14 июня 2019

В любом случае мы можем читать комментарии в Scala Doc, используя рефлексию.Мое требование - прочитать значение тега @group и использовать его для подсчета количества функций для каждой группы

1 Ответ

4 голосов
/ 14 июня 2019

Нет, вы не можете использовать Scala Reflection для доступа к комментариям к документации.Причина проста: комментарии, почти по определению, не часть программы.Следовательно, логически невозможно сделать их доступными через отражение.

Например, в Python документация доступна из работающей программы (фактически даже без использования отражения), посколькудокументация не скрывается в комментариях, а просто присваивается полю документа, который документируется.Многие Лиспы (например, Clojure), а также Ioke и Seph тоже работают таким образом.

В Newspeak то, что они называют «комментариями», доступно с помощью отражения, но это потому, что то, что они называют «комментариями», не совсемкомментарии, это больше похоже на произвольные метаданные, которые могут быть прикреплены к объектам.На самом деле это больше похоже на аннотацию в Scala, чем на комментарий.

В Scala документация пишется в комментариях, а комментарии не являются частью программы (они буквально эквивалентныпробел в Спецификации языка Scala ), и, следовательно, не может быть частью программы и, следовательно, не может быть доступен через отражение.

...