Я работаю над автоматической картой отображения, созданной поверх Dozer. Я не буду вдаваться в подробности, поскольку это не относится к вопросу, но в целом оно должно допускать легкое преобразование из класса A в класс B. Я хотел бы зарегистрировать проекции из объекта сопутствующего класса.
Ниже представлен (упрощенный) пример того, как я хочу, чтобы это сработало, и тест Specs, который гарантирует правильную регистрацию проекции.
К сожалению, это не работает. Из того, что я могу собрать, это потому, что ничего не инициализирует объект-компаньон. И действительно, если я вызываю какой-либо метод для объекта A (например, закомментированный вызов hashCode, проекция регистрируется правильно.
Мой вопрос: как я могу заставить объект A инициализироваться автоматически, как только запускается JVM? Я не возражаю против того, чтобы придать черту или что-то в этом роде.
Спасибо.
class A {
var data: String = _
}
class B {
var data: String = _
}
object A {
projekt[A].to[B]
}
"dozer projektor" should {
"transform a simple bean" in {
// A.hashCode
val a = new A
a.data = "text"
val b = a.-->[B]
b.data must_== a.data
}
}