Как создать пользовательские аннотации, такие как BeanProperty

в Scala можно использовать аннотацию @BeanProperty для автоматического создания геттеров и сеттеров в поле.

Как я могу создать свою собственную аннотацию, которая ведет себя так?

Мне интересно создавать аннотации, которые изменяют исходный код, как это делает @BeanProperty.

в качестве примера, как я могу создать аннотацию, которая генерирует только методы get?

спасибо.

1 ответов


два слова: плагин компилятора. Это непросто, и документация разрежена, но это один из способов сделать это.

будущие версии Scala, вероятно, будут иметь макрос, что дает вам большую часть той же гибкости.