Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从矢量到对象数组的转换_Java_Xml Rpc - Fatal编程技术网

Java 从矢量到对象数组的转换

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

实际上我正在研究XML-RPC。我试图在客户端类中执行一个方法,该方法返回一个对象数组。下面是我试图在客户机类中执行它的方法

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();