我在eclips中遇到编码错误类型不匹配,无法将Object转换为String。进入AL的所有数据都是String Type,AL被声明为String 如果我可以让AL去一个更好的String []。 继承我的代码:
Object[] Result;
AL.toArray (Result);
String[] news= new String[Result.length];
for (int i1=0;i1<news.length;i1++){
news[i1]=Result[i1]; <=====here is where the error shows up
答案 0 :(得分:1)
改变这个:
news[i1]=Result[i1];
到此:
news[i1]=Result[i1].toString();
答案 1 :(得分:1)
尝试输入类型。
news[i1] = (String) Result[i1];
但是,在类型转换之前检查Result [i1]的类型可能是个好主意。所以你可以做类似
的事情if( Result[i1] instanceof String){
news[i1] = (String) Result[i1];
}
如果您完全确定Result数组中的每个对象都是String类型,为什么不首先使用String []?就个人而言,我不是Object []的忠实粉丝......
答案 2 :(得分:0)
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
答案 3 :(得分:0)
您可以提供ArrayList.toArray()
方法with an existing array来定义您希望从中获取的数组类型。
所以,你可以这样做:
String[] emptyArray = new String[0];
String[] news = AL.toArray(emptyArray);
答案 4 :(得分:0)
试试这段代码:
public static void main(String[] args)
{
Object[] Result = {"a1","a2","a3"};
String[] AL = new String[Result.length];
for(int a=0; a<Result.length; a++)
{
AL[a] = Result[a].toString();
}
System.out.println(AL[0]);
System.out.println(AL[1]);
System.out.println(AL[2]);
}
答案 5 :(得分:0)
由于AL
是您报告的ArrayList<String>
,因此您可以在一行代码中执行所需操作:
String[] news = AL.toArray(new String[AL.size()]);