【发布时间】:2010-09-22 21:53:18
【问题描述】:
将char[] 转换为CharSequence 的最直接和/或有效的方法是什么?
【问题讨论】:
-
只是好奇!为什么需要 CharSequence?
-
因为我正在写一个 Appendable。
将char[] 转换为CharSequence 的最直接和/或有效的方法是什么?
【问题讨论】:
String 是 CharSequence。所以你可以根据你的char[]创建一个新的String。
CharSequence seq = new String(arr);
【讨论】:
没有副本:
CharSequence seq = java.nio.CharBuffer.wrap(array);
但是,new String(array) 方法可能更容易编写、更容易阅读和更快。
【讨论】:
上下文:
char[] 代替 String 的最常见用法之一是“临时”存储机密/密码。将它传递给一些服务/客户端的初始化......在这样的初始化之后不需要 sercrets。但是在java中字符串是不可能从内存中清除的(手动也不是垃圾回收)......所以,基本上禁止在字符串中存储秘密。
推荐方式:将secrets加载到char[],传递给init进程,然后手动清除(设置forEach char[i] = '0';)。 在专门的博客上阅读有关此问题的信息...
问题/答案:
注意:不幸的是,甚至必须检查 3rd 方服务/客户端初始化源代码,碰巧他们将 char 数组转换为代码中某个深处的字符串...)-: 明智地选择您的依赖项。
【讨论】: