Массивы являются единственным типом «коллекции» в jvm, поэтому для построения массива вам необходимо знать точный тип во время выполнения. Это не так легко сделать после стирания ...
Если вы посмотрите, как toArray
реализован в коллекциях Scala, вы увидите, что он использует Manifest
для восстановления информации о стертых типах. Вам в основном нужно продублировать это и убедиться, что манифест доступен для вашего типа T
.
Однако, почему вы реализуете этот класс в первую очередь? Если вы пытаетесь создать собственный класс коллекции, вы обнаружите, что очень быстро становится очень сложно добавить такие функции, как CanBuildFrom
. Если вы просто хотите, чтобы оболочка предлагала java Collection
для какой-либо другой библиотеки, я бы порекомендовал JavaConvertors
. Если вам не нужно взаимодействие, тогда нет никакой причины вообще реализовывать Collection
, поскольку Scala имеет отличную структуру коллекций и, как правило, избегает коллекций Java, которые ломаются для использования в полностью функциональном безопасном программировании.