Scala: использование отражения для добавления поведения в методы установки переменных в классе - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь добавить поведение к установщикам переменной в классе.Для простоты скажем, что я хочу что-то выводить на консоль всякий раз, когда установлена ​​переменная.Более того, я хочу добиться этого, используя отражение из черты, смешанной в классе.

Рассмотрим следующий код:

class Foo(var bar: String) extends Logger {}

trait Logger { self =>
  // create mirrors to reflect on the delegate
  private val runtimeMr  = runtimeMirror(self.getClass.getClassLoader)
  private val instanceMr = runtimeMr.reflect(self)

}

Как мне теперь:

1) получить метод (ы) установщика из instanceMr и, что более важно

2) добавить поведение к выполнению установщика (в моем случае панель печати перед установкой)

...