在安卓中如果将Object[]直接用(String [])转成Sting类型,会报错Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; 错误。
但是如果我用for循环将Object[]中的元素逐个的转化成String[]则不会 报错。为什么
正确代码如下
public Cursor fetchDataBySql(int rowId,String user_name) {
String searchSQL = "select * from " + DATABASE_TABLE + " WHERE _id = ? ";
Object[] args = { rowId };
String[] args2 = new String[args.length];
for(int i=0;i<args.length;i++){
args2[i] = args[i].toString();
}
Cursor cursor = sqliteDatabase.rawQuery(searchSQL,args2) ;
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
错误代码
Object[] args = { rowId };
Cursor cursor = sqliteDatabase.rawQuery(searchSQL, (String[]) args);
谢谢你,但是我觉得我上面的遍历转换,还要另外的创建变量,影响整体运行效率,有什么好的解决办法吗?谢了
追答我刚才查了一下,貌似我说的不大对,数组的强制类型转换也是可以的,之前你的失败应该是因为rowld是int型,向上转型成Object,然后你后面想把Object强制转化成String是向下转型,这是不允许的,除非Object是以String构造的。你把错误代码的第一行改一下试试:
Object[] args=new String[]{rowld};
为什么object可以转为string
String strVal = (String)obj;在运行时将会出错,因为将Integer类型强制转换为String类型,无法通过。但是,Integer obj = new Integer(100);String strVal = (String)obj;如上格式代码,将会报语法错误。此外,因null值可以强制转换为任何java类类型,(String)null也是合法的。方法3:采用String.valueOf(Object)String.v...
java 数组 Object 转成 String
比如你的 Object[] args={ rowld },这里rowld是一个int类型,但是java里所有类型都继承自Object类型,所以rowld也可以说是Object类型的对象,赋值不会报错。args2[i]=args[i].toString();由于Object.toString()方法返回类型是Stirng,所以赋值也不会报错。但是直接将 args 转成 args2 明显就类型...
java如何把Object中的数据转化为String数组
String[] str=new String[llist.size()];llist.toArray(str);这样Object[]数组就转到了String[]数组了,你可以去参考toArray()方法原型:public synchronized <T> T[] toArray(T[] a) { if (a.length < elementCount)a = (T[])java.lang.reflect.Array.newInstance(a.getClass().getCom...
java一个Object对象怎么转化成一个String[ ][ ],这个Object对象是String...
定义数组应该写成这样:Object[][] object = {{"22","fdsf"},{"22","fdsf"},{"22","fdsf"},{"22","fdsf"}};
java一个Object对象怎么转化成一个String[ ][ ],这个Object对象是String...
强制转换啊 Object[][] aaa = new Object[][]{{"a","b"},{"c","d"}};String[][]d =(String[][])aaa;
java怎么把一个数组转化为字符串
通过数组循环的方式,最终拼接成字符串 1、定义一个整型数组 int[] arr = new int[3];\/\/定义一个长度3的整型数组2、拼接成字符串 String s = "";for(int i=0;i
求问List <Object[]> 如何转换成 String []
iterator(); int i = 0; while(it.hasNext()){ row.add((String[])it.next()); s[i]=row.get(i)[0]; i++; } return s;问题补充:enet_java 写道toArray() 是返回集合中所有元素的数组,怎么可以返回String[]呢?", typeComp); List <Object[]> row = new ArrayList<Object[...
Object[]和String[] 有关系没,之间可以赋值吗,求详解,最好举例_百度知 ...
Object是所有类的父类。如果你定义一个Object的数组的话,什么数据都可以存储进去。但你取出来的时候就要进行一个数据类型的强制转换。否则这个数据就是一个Object类型的数据。将变为不可用。所以根据你的提问,它们两个是有很大关系的,并且可以赋值。
java 如何将数组转化成string类型
用Arrays辅助类。。。如 String[] a = {"aaaa","bbbb","cccccc"};String b = Arrays.toString(a);不过输出的是这样的:[aaaa, bbbb, cccccc]如果想把内容连起来的话 我觉得只能用循环把内容串起来了。。。
java中怎么把string数组转成string
public static void main(String[] args) { String [] arr = {"41","a","5","g56"}; \/\/0),利用Arrays,将数组对象转换为数组原始格式的String对象:String s1 = Arrays.toString(arr);System.err.println(s1);\/\/输出:[41, a, 5, g56]\/\/1),利用StringUtils,将数组对象的成...