我正在使用Java 7,并且我正在 Guava API 中搜索一种将函数应用于数组的方法,而不必先将其转换为集合。我愿意为此目的创建自己的类,但我不想重新发明轮子呵呵。
所以作为一个总结(如果你不知道我在说什么),这是我迄今为止发现的,你可以用 Guava 来做,以便将一个函数应用于数组,正如我所说的:
Integer[] someNumbers = new Integer[]{1, 2, 3};
Integer[] returnedNumbers = Collections2.transform(Arrays.asList(someNumbers), squareNumberFunction).toArray(new Integer[0]);
assertThat(returnedNumbers).isEqualTo(new Integer[]{1, 4, 9});//Using AssertJ here
Run Code Online (Sandbox Code Playgroud)
但我希望能够做这样的事情:
Integer[] someNumbers = new Integer[]{1, 2, 3};
Integer[] returnedNumbers = Arrays.transform(someNumbers, squareNumberFunction);
assertThat(returnedNumbers).isEqualTo(new Integer[]{1, 4, 9});
Run Code Online (Sandbox Code Playgroud)
理想情况下,我正在谈论的功能是type-safe。
编辑
为了进一步澄清问题: