Это будет означать, что класс будет иметь динамическое c число членов, что невозможно.
Однако, есть более простые способы express нескольких элементов. И это использует коллекцию.
В этом случае я считаю, что лучше всего было бы что-то с быстрым доступом по индексу, поэтому я бы использовал ArraySeq .
final class B(n: Int) {
val instances: ArraySeq[A] = ArraySeq.tabulate(n)(_ => new A)
}
Вы можете скрыть коллекции как приватный член и вместо этого предоставить доступ методом apply
.
PS: Если вы используете 2.12
или предыдущий выпуск, ArraySeq не существует, вы можете использовать Vector вместо этого как: (0 to n). map(_ => new A).toVector