首页 > 解决方案 > 如何将 vavr 集合转换为 Java 数组?

问题描述

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

标签: vavr

解决方案


在这三个toJavaArray变体中,只有该toJavaArray(Class)变体被直接弃用,另外两个被标记为弃用,因为Value该类本身已弃用。生成的 javadoc 对区分两者的帮助不是很大,遗憾的是,您可以直接查看源代码。这张图片可能是当前状态的更精确表示:显示 IntelliJ IDEA 的屏幕截图,在 Value 类中使用 toJavaArray 方法,并带有弃用警告

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

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

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


推荐阅读