代码之家  ›  专栏  ›  技术社区  ›  Jörn Horstmann

从Kotlin使用FastUtil IntList时避免弃用警告

  •  1
  • Jörn Horstmann  · 技术社区  · 6 年前

    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)
    }
    

    有没有其他方法可以使用数组索引语法而不发出弃用警告,也不抑制所有其他弃用?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alexey Romanov    6 年前

    不,我不相信有。你可以写一个包装器,这将是一个不小的工作量。

    Trove's TIntList 可以使用 int get(int offset) List<Integer> . 同样适用于 HPPC .