Попытка получить значения всех полей ребенка от родительского класса, как это:Scala: Получить значение ребенка от родителя?
for (field <- this.getClass.getDeclaredFields) {
Logger.debug(field.getName)
field.get(this)
}
и получил ошибку
Исключение: Класс models.Model $$ anonfun $ 4 не может получить доступ к члену класс models.Good с модификаторами "частный" на линии
field.get(this)
в хорошем классе У меня нет частных полей:
class Good(id: Option[String]) extends Model[realGood](id){
lazy val title: String = this.load[String](realObject.get.title)
lazy val cost: Double = this.load[Double](realObject.get.cost)
}
Что не так с этим кодом?
В какой строке указывается сообщение об ошибке? Я думаю, что просмотр класса Scala с помощью отражения Java может быть опасным, поскольку, когда Scala компилируется в байт-код, компилятор выполняет множество грязных трюков, чтобы быть совместимыми с байт-кодом Java. Вместо этого вы должны использовать отражение Scala. – Dici
Скорее всего, «это» неправильно. Вы можете быть в пределах функции, и 'this' является анонимным внутренним классом класса, который вы хотели бы получить. BTW, в Scala каждое поле является закрытым, можно изменять только видимость методов доступа и модификатора. –