Java 从矢量到对象数组的转换
实际上我正在研究XML-RPC。我试图在客户端类中执行一个方法,该方法返回一个对象数组。下面是我试图在客户机类中执行它的方法Java 从矢量到对象数组的转换,java,xml-rpc,Java,Xml Rpc,实际上我正在研究XML-RPC。我试图在客户端类中执行一个方法,该方法返回一个对象数组。下面是我试图在客户机类中执行它的方法 Object[] result = (Object[]) client.execute("getNames" , vector); vector表示字符串类型的向量数组&“getNames”表示默认处理程序类中的方法名称: public Object[] getNames(String a, String b, String c) { Vector&l
Object[] result = (Object[]) client.execute("getNames" , vector);
vector表示字符串类型的向量数组&“getNames”表示默认处理程序类中的方法名称:
public Object[] getNames(String a, String b, String c) {
Vector<String> strings = new Vector<String>();
strings.add(a);
strings.add(b);
strings.add(c);
String [] arrOfString = strings.toArray(new String[strings.size()]);
return arrOfString ;
}
public Object[]getNames(字符串a、字符串b、字符串c){
向量字符串=新向量();
字符串。添加(a);
字符串。添加(b);
字符串。添加(c);
字符串[]arrOfString=strings.toArray(新字符串[strings.size()]);
返回arrOfString;
}
运行时,发生以下异常:
java.lang.ClassCastException: java.util.Vector cannot be cast to [Ljava.lang.Object;
at org.apache.xmlrpc.demo.SimpleClient.<init>(SimpleClient.java:37)
at org.apache.xmlrpc.demo.SimpleClient.main(SimpleClient.java:65)
java.lang.ClassCastException:java.util.Vector不能强制转换为[Ljava.lang.Object;
位于org.apache.xmlrpc.demo.SimpleClient.(SimpleClient.java:37)
位于org.apache.xmlrpc.demo.SimpleClient.main(SimpleClient.java:65)
我能做些什么来解决这个强制转换问题?您可以在
getNames
方法中简单地使用Vector
类的toArray
方法
public Object[] getNames(String a, String b, String c) {
Vector<String> strings = new Vector<String>();
strings.add(a);
strings.add(b);
strings.add(c);
return strings.toArray();
}
如果
vector
确实是您调用的vector类型(“getNames”,vector)-但是您的方法有签名字符串、字符串、字符串。我在vector中添加了3个字符串。我以前尝试过此解决方案,但问题是execute方法使用以下参数(字符串、向量),因此它不接受vector.toArray()。
Object[] result = vector.toArray();