Кто-нибудь знает статус полнофункционального API отражения для Scala?Reflection API для Scala
Я знаю, что вы можете использовать API отражения Java для выполнения простых задач, но это не очень хорошо работает с языковыми функциями Scala. Я нашел interesting article, описывающий экспериментальный Scala Mirroring API, но насколько я знаю, это все еще экспериментально. Я также нашел упоминание о ScalaSigParser, но это кажется довольно низким.
Это скорее любопытство, чем что-либо другое, поскольку я сейчас просто играю с Scala. Я думал, что ответ на этот вопрос также может быть полезен другим, заинтересованным в Scala.
Можете ли вы уточнить, что вы хотите от отражения? Вы можете использовать процедуры в scala.tools.nsc, чтобы помочь с изменением имени, а некоторые вещи просто не отражают хорошо - вам действительно нужна компиляция, чтобы помочь вам, потому что это не просто вызов существующих методов (например, если вам нужно новое закрытие). –
Во-первых, я думал, что было бы неплохо создать экземпляры классов с именованными параметрами, чтобы вам не пришлось беспокоиться о порядке параметров - это может быть неизменной заменой шаблону стиля JavaBean. Я также думал, что было бы неплохо иметь возможность взглянуть на структуру класса, поскольку она относится к функциям Scala. то есть. Принеси мне все харты - найди главное - назови это. Или ответьте на вопросы, например, это поле val или var. Кроме того, было бы неплохо использовать API отражения, выполненный в идиоматическом стиле Scala, вместо того, чтобы возвращаться к API Java. Просто идеи .. –
Я не думал о некоторых более динамичных функциях метапрограммирования, таких как добавление методов во время исполнения или в выражениях стиля eval, - только по тому, что API-интерфейс отражения Java позволяет вам делать, но адаптирован для языка Scala. –