我最近正在使用Java api Stack类,发现了一个有趣的行为。查看下面的代码
import java.util.Arrays;
import java.util.Stack;
public class Test {
public static void main(String[] args) {
Stack<Character> stack = new Stack<>();
String input = "abc";
// This does not work
// stack.addAll(Arrays.asList(input.toCharArray()));
Character[] arr = primitiveToObject(input);
stack.addAll(Arrays.asList(arr));
System.out.println(stack);
}
private static Character[] primitiveToObject(String str) {
char[] alpha = str.toCharArray();
Character[] result = new Character[alpha.length];
for(int index=0; index<alpha.length; index++) {
result[index] = alpha[index];
}
return result;
}
}
在上面的示例中,Arrays.asList()
将Character[]
转换为List<Character>
,但是将char[]
转换为List<char[]>
问题:
是否有标准的Java API,可以从原始char[]
转换为Character[]
而不是编写您自己的方法。我发现Apache有一个ArrayUtil API,可以使用它,但是没有提供现成的标准Java api
修改 这个问题询问的是解决该情况的标准Java api,而不是如何解决它,因此不是标记为重复的