从 Java 8 开始,因此需要一些时间来适应它。这是一个经典问题,我有一组要转换的对象。
在 Java8 之前,理想的代码应该是(没有空指针):
P[] outputArray = new P[inputArray.length];
for (int i =0; i< inputArray.length; i++ )
{
outputArray [i] = inputArray[i].transformToP();
}
Java8 中最好的版本是什么?
最佳答案
使用 Stream API 非常简单:
P[] outputArray = Arrays.stream(inputArray).map(e -> e.transformToP()).toArray(P[]::new);
也可以使用方法引用(假设I
是输入元素的类型):
P[] outputArray = Arrays.stream(inputArray).map(I::transformToP).toArray(P[]::new);
请注意,如果 transformToP()
方法抛出检查异常,您可能会遇到问题。在这种情况下将它们转换为未选中的或咨询 this问题。
关于Java 8 - 转换数组元素的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32005002/