我需要传递一个空的 int 数组。
new int[]{}
-> 这有效。
但是,到底有没有下面的方法呢?
Collections.emptyList().toArray()
-> 我无法将其转换为 int[] 数组。
方法签名,
public void checkVersions(final int[] versions)
这是要调用的方法。在某些情况下,我需要传递一些空的 int[]。
谢谢
最佳答案
这可能被认为是题外话,但我仍然想为您提供以下想法:
当您编写代码时,您应该以一种尽可能简单的方式编写它,以便以后那些不知道代码应该做什么的人阅读。
因此,“new int[0]”或“new int[]{}”比“IntStream.empty().toArray()”要好得多。为什么?因为前两个清楚地表明您正在构造一个 int[] 并且它是空的。当您第一次看到 IntStream 时,使用 IntStream 的后续解决方案需要更多思考(因此具有更高的认知负荷),其中创建了空流。然后将这个空的整数流转换为数组。因此,您看不到正在创建的数据类型,并且有一个额外的步骤(转换)。
我认为(个人想法!)除“new int[0]”或“new int[]{}”之外的其他解决方案是棘手的代码。不要试图幻想创建一个普通的“空整数数组”,它只会给阅读代码的任何人带来痛苦。
现在,我不想谈论您对替代方案的兴趣,我只想避免您将此类代码投入生产。我希望这条消息出现了。
关于Java - 空整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653474/