0

実際に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 ;
    }

実行中に、次の例外が発生しました。

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)

このキャストの問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

メソッドでクラスのtoArrayメソッドを使用するだけです。VectorgetNames

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

ifvectorは確かにタイプVectorです。

于 2013-03-19T07:45:17.613 に答える