Нижний тип, связанный с полем Scala в изменяемом, ковариантном классе?

Я хочу создать изменяемый ковариантный класс, поэтому мне нужно добавить более низкий тип, привязанный к методу установки. Но я также хочу, чтобы метод установки устанавливал поле, поэтому я предполагаю, что поле должно иметь привязку одного и того же типа?

class Thing[+F](initialValue: F) {

    private[this] var secondValue: Option[G >: F] = None

    def setSecondValue[G >: F](v: G) = {
        this.secondValue = Some(v)
     }
}

Метод компилируется нормально. Но поле с именем secondValue вообще не компилируется с сообщением об ошибке:

    Multiple markers at this line
        - ']' expected but '>:' found.
        - not found: type G

Что мне нужно сделать?

8
задан Jacek Laskowski 17 March 2014 в 21:03
поделиться