2013-03-19 66 views
0

实际上很努力XML-RPC的阵列。我试图在客户端类中执行一个返回对象数组的方法。这是我试图在客户端类中执行它的方式。从矢量投射到对象

Object[] result = (Object[]) client.execute("getNames" , 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 ; 
    } 

运行时,以下的异常出现:

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) 

我能做些什么来解决这个问题,铸造?

+1

你叫(“getNames”,载体) - 但你的方法有签名字符串,字符串,字符串 – 2013-03-19 07:46:29

+0

我已经添加了3串矢量。 – 2013-03-19 07:52:45

回答

1

您可以简单地使用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(); 
} 

但是,如果我得到你真正想做的事,我认为你可以简单地这样做:

Object[] result = vector.toArray(); 

如果vector确实Vector类型。

+0

此解决方案不起作用。 – 2013-03-19 07:56:24

+0

见编辑答案。 – benzonico 2013-03-19 08:01:11

+0

我试图此溶液之前,但问题是,执行方法采取followig参数(字符串,矢量),所以它不接受vector.toArray()。 – 2013-03-19 08:04:37