如何在Java中将对象转换为字符串

36
我有一个返回映射值(字符串)作为通用对象的函数。如何将其转换回字符串?我尝试使用toString(),但得到的只是end[Ljava.lang.String;@ff2413
public Object getParameterValue(String key)
{
    Iterator iterator=params.entrySet().iterator();

    while(iterator.hasNext())
    {
        Map.Entry me=(Map.Entry)iterator.next();
        String[] arr=(String[])me.getValue();
        log.info(me.getKey().toString()+"="+arr[0]);
    }
    if(params.containsKey(key))
    {
        log.info(key+"="+params.get(key));
        return params.get(key);
    }


    return null;
}

接收端

String temp=data.getParameterValue("request").toString();
log.info("end"+temp);

log.info(me.getKey().toString()+"="+arr[0]); 输出什么结果?

email=x@as.com
request=login
projectid=as

我已经从你的问题中删除了你的解决方案。如果你想把它作为一个“答案”发布,随意。 - Duncan Jones
11个回答

0
/**  * This toString-Method works for every Class, where you want to display all the fields and its values  */ public String toString() {

StringBuffer sb = new StringBuffer();

Field[] fields = getClass().getDeclaredFields(); //Get all fields incl. private ones

for (Field field : fields){

    try {

        field.setAccessible(true);
        String key=field.getName();
        String value;

        try{
            value = (String) field.get(this);
        } catch (ClassCastException e){
            value="";
        }

        sb.append(key).append(": ").append(value).append("\n");

    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

}

return sb.toString(); }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接