从对象,它是一个字符数组(不是对象[])获取字符串
问题描述:
这不是重复,请阅读问题和理解,我有一个对象(不一个char [],不对象[],但对象)从对象,它是一个字符数组(不是对象[])获取字符串
public String getStringFromObject(Object o){
// What do I do here to get a String? o is actually a char[]
}
我有用于表示字符阵列的Java对象:
我获得通过一个Object cred
成方法
L.info("Credentials component type is {} and is array -> {}",
cred.getClass().getComponentType(), cred.getClass().isArray());
此打印:Token's credentials are: [s, d, f] and type is [C
如何进入一个字符串呢?我无法弄清楚如何将对象投射到任何种类的[]
数组。如果是从Object[]
开始,那不会是一个问题。
答
如果你有char[]
,并且希望将其转换为一个String
只需使用constructor
public String(char[] value)
从javadoc:
分配一个新的String所以它代表的当前包含在字符数组参数中的字符序列。字符数组的内容被复制;字符数组的后续修改不会影响新创建的字符串。
注
如果你有一个Object
是这里char[]
是你拥有的一切:
char[] x = ....;
Object objectIsACharArray = x;
String s = new String((char[]) x);
如果Object
不是char[]
而是代表或持有的东西一个字符数组,您需要一个自定义代码将其转换为String
。
'[C'表示它是一个'char []',因此被转换成这个。然后调用String(char [])'构造函数。 – Thomas
输出似乎来自不同的日志语句。你确定你发布了正确的吗? – manouti
[如何将字符数组转换回字符串?](http://*.com/questions/7655127/how-to-convert-a-char-array-back-to-a-string) – utybo