FastUtil содержит оптимизированные реализации коллекций, которые позволяют избежать накладных расходов на автоупаковку. Чтобы уведомить программистов о непреднамеренном автоупаковке, например, при использовании IntList
, они пометили метод Integer get(int)
как устаревший, предложив вместо него использовать int getInt(int)
. это приводит к предупреждению об устаревании при использовании синтаксиса индекса массива с такими списками:
import it.unimi.dsi.fastutil.ints.IntArrayList
private fun test() {
val list = IntArrayList(listOf(1, 2, 3))
println(list[0]) // deprecation warning on this line
}
Я попытался переопределить get
как операторную функцию, но это, похоже, не работает из-за того, что «Расширение затенено участником».
operator fun IntArrayList.get(i: Int): Int {
return this.getInt(i)
}
Есть ли другой способ использовать синтаксис индекса массива без предупреждения об устаревании и без подавления всех других устареваний?