【发布时间】:2020-07-06 20:58:06
【问题描述】:
我知道https://www.javadoc.io/doc/io.vavr/vavr/latest/io/vavr/Value.html#toJavaArray,但它已被弃用。有没有可以使用的非弃用方法?
【问题讨论】:
标签: vavr
我知道https://www.javadoc.io/doc/io.vavr/vavr/latest/io/vavr/Value.html#toJavaArray,但它已被弃用。有没有可以使用的非弃用方法?
【问题讨论】:
标签: vavr
在三个toJavaArray 变体中,只有toJavaArray(Class) 变体被直接弃用,另外两个被标记为弃用,因为Value 类本身已弃用。生成的javadoc对区分两者的帮助不是很大,遗憾的是,你可以直接查看source code。这张图大概是对当前状态更精确的表示:
Value 已弃用,取而代之的是 io.vavr.Iterable。这个新接口是java.lang.Iterable 类型的扩展,主要区别在于它返回io.vavr.collection.Iterator 而不是简单的java.util.Iterator。 io.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)。
【讨论】: