CollectionConverters
Состояния API
Во всех случаях преобразование исходного типа в целевой тип и обратно возвращает исходный исходный объект.
Это не всегда так. Например, в следующем случае это действительно true
val orig = ListBuffer(1,2,3)
assert(orig.asJava.asScala eq orig) // OK
однако здесь утверждение не выполнено
val orig = ListBuffer(1,2,3).asJava
assert(orig.asScala.asJava eq orig) // Boom!
Изменение на List
вместо ListBuffer
утверждение проходит
val orig = List(1,2,3).asJava
assert(orig.asScala.asJava eq orig) // OK
Означает ли средний регистр копию? Если да, то каковы точные правила, когда делается копия и, следовательно, происходит снижение производительности?