将Java转换为Kotlin -streams

问题描述 投票:0回答:3
我想将其转换为Kotlin,我一直到达这里:

private static Signature[] createSignatures(String... encodedSignatures) { return Arrays.stream(encodedSignatures) .map(encodedSignature -> new Signature(Base64.decode(encodedSignature, Base64.DEFAULT))) .toArray(Signature[]::new); }
,但上述不起作用,尤其是最后的行,也就是说,是问题。我该如何解决?在Kotlin中将流转换为数组的正确方法是什么?
    

您可以使用以下代码来实现目标:

.toArray(Signature[]::new)

    

trone this:
kotlin
3个回答
0
投票
private fun createSignatures(vararg encodedSignatures: String): Array<Signature> { return encodedSignatures .map { Signature(Base64.decode(it, Base64.DEFAULT)) } .toTypedArray() }

我有这个问题现代化了大约7岁的Java代码。我的数组元素是
private fun createSignatures(vararg encodedSignatures: String): Array<Signature?>? { return Arrays.stream(encodedSignatures) .map { encodedSignature -> Signature(Base64.decode(encodedSignature, Base64.DEFAULT)) } .toArray { _Dummy_.__Array__() } }

0
投票
String

没有归类为

映射类型,所以我觉得这里的现有答案是我要获得的最接近的答案。
Maybe在Kotlin 2.0中发生了变化,但没有发现红色下划线治疗:

0
投票


我的java:
String
在经过多年的忽视之后,我宁愿拥有简短,可读性,广泛理解的线条。那是我的问题
使用Kotlin可以接受的唯一可以接受的解决方案是:
.toTypedArray()

到了,这给了我警告,以警告

String[] recents = mStrings.stream().map(o -> ABOMINABLE_FORMATTER.matcher(o).replaceAll(" $1")).toArray(String[]::new);
中不受组织的演员。我只是看不到更好的方法。现在,我的代码被翻译和工作,因此我采取这些警告有多严重还有待观察。一半的7岁Java项目的演示层被弃用了,所以我很容忍,但仍然通过引入新警告而感到沮丧。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.