Как проверить, какие параметры класса case имеют значение по умолчанию, используя scala Reflection 2.10

Моя задача — найти имена параметров case-класса, для которых есть значения по умолчанию.

В версии 2.9 я использовал ScalaSigParser из scalap и делал что-то похожее на:

(...)
case x: MethodSymbol if x.name.startsWith("init$default$") => (...)
(...)

Я надеялся, что отражение в версии 2.10 облегчит мне доступ к такого рода информации.

В конце концов я хотел бы написать макрос, который я бы включил в объект-компаньон класса case, который автоматически создал бы код для сериализации/десериализации этого класса case. Для этого мне нужно знать, какие параметры имеют значения по умолчанию.

8
задан Jarek Odzga 3 August 2012 в 23:48
поделиться