在Java中如果将某个数组直接转换为Object[], 运行时会报错[F cannot be cast to [Ljava.lang.Object;
如何解决这一问题呢?
这个时候应该想到Java的泛型
经过过重尝试,最终这种格式能够在泛型的支持下有效(不支持原生态的数组类型比如 int[] , float[], double[]等,但是对于任何对象数组,都能够有效的支持)
的将 Java数组转换为别的格式,我这里要把Java数组转换为字符串,不同的转换需求需要进行不同的处理。代码如下:
public static <T,K> String arr2strByGenericity(Class<K> k ,T t){
StringBuffer sb = new StringBuffer();
K[] ts;
if(t!=null){
if(t.getClass().isArray()){
ts = (K[]) t;
for(K e: ts){
sb.append(e+" , ");
}
}
}else{
return null;
}
return sb.toString();
}