2013-03-19 89 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