Простое расширение не будет работать, как это сделать в Scala - PullRequest
1 голос
/ 17 октября 2011

Я пытался играть со Скалой и кое-чем не так. Может быть, потому что слишком поздно или может быть, потому что затмение не будет работать нормально, но у меня есть здесь ошибка:

    class A(
      val name: String,
      val age: Integer,
      val pro: Boolean
    )

    class B(val size: Integer) extends A(name, age, pro) //error
  • не найдено: значение age B.scala / Test / src line 1 Проблема Scala
  • не найдено: имя значения B.scala / Test / src line 1 Проблема Scala
  • не найдено: значение pro B.scala / Test / src line 1 Проблема Scala

Класс А находится в той же упаковке. Я думал, вот как продлевается работа ... у кого-нибудь есть идея?

1 Ответ

9 голосов
/ 17 октября 2011

Когда вы определяете class B(val size: Integer) extends A(name, age, pro), вы также определяете конструктор, который будет вызывать конструктор из A с параметрами name, age, pro. Компилятор жалуется, что эти переменные не определены.

Так может быть что-то вроде этого, что вам нужно:

class B(val size: Integer
  name: String,
  age: Integer,
  pro: Boolean) extends A(name, age, pro)

На неродственной ноте тип целого числа в Scala обычно называется Int. Integer относится к java.lang.Integer. Обычно Int работает просто отлично, если вы не сталкиваетесь с проблемами совместимости Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...