【发布时间】:2014-02-11 07:09:13
【问题描述】:
这是我用 Java 编写并访问 Bugzilla 并获取对象的代码。但我无法获得对象值。我正在尝试覆盖 toString() 函数,但被覆盖的函数不起作用。
package XMLRPC;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;
public class Search {
@Override
public String toString() {
//System.err.println ("Ojesh");
return String.format("oje"+"abx");
}
public static void main(String args[])
throws MalformedURLException, XmlRpcException {
HttpClient httpClient = new HttpClient();
XmlRpcClient rpcClient = new XmlRpcClient();
XmlRpcCommonsTransportFactory factory = new XmlRpcCommonsTransportFactory(rpcClient);
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
factory.setHttpClient(httpClient);
rpcClient.setTransportFactory(factory);
config.setServerURL(new URL("http://abc2/bugzilla/xmlrpc.cgi"));
rpcClient.setConfig(config);
//map of the login data
Map loginMap = new HashMap();
loginMap.put("login", "abc@bag");
loginMap.put("password", "***");
loginMap.put("rememberlogin", "Bugzilla_remember");
// login to bugzilla
Object loginResult = rpcClient.execute("User.login", new Object[]{loginMap});
System.err.println ("loginResult=" + loginResult);
// map of the bug data ok
Map bugMap = new HashMap();
bugMap.put("id", "350");
//bugMap.put("status", "NEW");
// create bug
Object createResult = rpcClient.execute("Bug.search", new Object[]{bugMap});
//createResult.toString();
System.err.println("createResult =" + createResult.toString());
}
}
它没有按预期返回 OJEABX。而是显示 bugs=[Ljava.lang.Object;@2ee5e48a。 我哪里错了?我想打印 Object 的值但不能正常工作。
【问题讨论】:
-
createResult 是您的 Search 类的实例吗?
-
您正在覆盖搜索类的 toString() 方法。
-
如果您实际上在
Search类的实例上调用toString,它将输出您所期望的 - 不过我看不到您在代码中执行此操作的任何地方。你认为它应该在哪里做? -
@rokonoid createResult 是一个由我正在调用的 API 方法返回的对象(Bug.seacrh)。
标签: java object tostring bugzilla