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
как операторную функцию, но, похоже, это не работает из-за того, что «Расширение затененоmemeber ".
operator fun IntArrayList.get(i: Int): Int {
return this.getInt(i)
}
Есть ли другой способ использовать синтаксис индекса массива без предупреждения об устаревании и без подавления всех других устареваний?