将char[]
转换为CharSequence
的最直接和/或最有效的方法是什么?
答案 0 :(得分:31)
没有副本:
CharSequence seq = java.nio.CharBuffer.wrap(array);
但是,new String(array)
方法可能更容易编写,更易于阅读和更快。
答案 1 :(得分:8)
String
是CharSequence
。因此,您可以根据String
创建新的char[]
。
CharSequence seq = new String(arr);
答案 2 :(得分:0)
上下文:
char []而不是String的最常见用法之一是“临时”存储秘密/密码。要将其传递给某些服务/客户端的初始化...在此类初始化之后,不需要使用Sercret。但是在java字符串中不可能从内存中清除它(手动或通过垃圾回收)... 因此,基本上禁止在字符串中存储秘密。
推荐方法:将机密加载到char [],将其传递给init进程,然后手动清除(设置forEach char [i] ='0';)。 在专业博客上了解有关此问题的信息...
问题/答案:
注意:不幸的是,不幸的是,甚至必须检查第三方服务/客户端初始化源代码,碰巧他们将char数组转换为代码深处的字符串...)-:明智地选择依赖项。