Обходной параметр параметра типа Scala - PullRequest
1 голос
/ 21 марта 2012

Хорошо, я знаю, что у Scala нет параметров типа aux cons.Что если у меня есть класс, подобный

class Group[G <: Groupable] (groupees: Buffer[G]) {
   //stuff here
}

, и что, если я хочу расширить этот класс, скажем

class Lizards extends Group [Lizard] (Buffer[Lizard]())

, аргумент cons родительского класса здесь кажется ненужным, поэтому я хочу взятьвсе сводится к предположению, что если Group параметризован чем-то, этот тип должен использоваться при создании буфера.Есть ли способ сделать это, кроме запрещенных введенных aux минусов?

1 Ответ

3 голосов
/ 21 марта 2012

Кажется, работает нормально для меня:

import collection.mutable.Buffer
trait Groupable
class Group[G <: Groupable] (groupees: Buffer[G])
class Lizard extends Groupable
class Lizards extends Group[Lizard] (Buffer())    // type only on superclass
class Lizards extends Group (Buffer[Lizard]())    // type only on argument
...