【问题标题】:How to convert vavr collection to Java array?如何将 vavr 集合转换为 Java 数组?
【发布时间】:2020-07-06 20:58:06
【问题描述】:

我知道https://www.javadoc.io/doc/io.vavr/vavr/latest/io/vavr/Value.html#toJavaArray,但它已被弃用。有没有可以使用的非弃用方法?

【问题讨论】:

    标签: vavr


    【解决方案1】:

    在三个toJavaArray 变体中,只有toJavaArray(Class) 变体被直接弃用,另外两个被标记为弃用,因为Value 类本身已弃用。生成的javadoc对区分两者的帮助不是很大,遗憾的是,你可以直接查看source code。这张图大概是对当前状态更精确的表示:

    Value 已弃用,取而代之的是 io.vavr.Iterable。这个新接口是java.lang.Iterable 类型的扩展,主要区别在于它返回io.vavr.collection.Iterator 而不是简单的java.util.Iteratorio.vavr.collection.Iterator 扩展了Value,我希望在移除Value 接口后,所有在Value 接口中未明确弃用的方法都将移至io.vavr.collection.Iterator

    在两个未明确弃用的 toJavaArray 方法中,我将使用 T[] toJavaArray(IntFunction<T[]> arrayFactory) 变体——这是我对 vavr 项目的贡献之一——因为它返回正确类型的类型化数组而不是 @987654341 @。

    总结一下,我不会使用vavrValue.toJavaArray(),而是使用vavrValue.iterator().toJavaArray(SomeType[]::new)

    【讨论】:

      猜你喜欢
      • 2011-03-05
      • 2015-07-31
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多