Java 从映射返回值时卡住

Java 从映射返回值时卡住,java,Java,我有下面的方法返回一个映射 private Map<String, FilterParam> retrieveFilter(Map<String, String> params) { Map<String, FilterParam> filterParams = new HashMap<>(); for(Entry<String, String> e : params.entrySet()){ if

我有下面的方法返回一个映射

private Map<String, FilterParam> retrieveFilter(Map<String, String> params) {

    Map<String, FilterParam> filterParams = new HashMap<>();


    for(Entry<String, String> e : params.entrySet()){
        if(someOthermap.containsKey(e.getKey())){
            filterParams.put(e.getKey(), parser.parse(e.getKey(), e.getValue()));

        }
    }

    return filterParams;
}

public class FilterParam {

public FilterParam parse(String key, String value){

    FilterParam filterParam = new FilterParam();
    filterParam.setKey(key);

    if(value.length() > 1 && value.startsWith("$")){
        filterParam.setOperator(Operator.PROCESS);
        filterParam.setValue(value.substring(1));

    }else{
        filterParam.setOperator(Operator.QUIT);
        filterParam.setValue(value);
    }

    return filterParam
    }
}
私有映射检索过滤器(映射参数){
Map filterParams=new HashMap();
对于(条目e:params.entrySet()){
if(someOthermap.containsKey(e.getKey())){
filterParams.put(e.getKey(),parser.parse(e.getKey(),e.getValue());
}
}
返回过滤器参数;
}
公共类筛选器参数{
公共FilterParam解析(字符串键、字符串值){
FilterParam FilterParam=新的FilterParam();
filterParam.setKey(键);
if(value.length()>1&&value.startsWith(“$”){
filterParam.setOperator(操作员.进程);
filterParam.setValue(value.substring(1));
}否则{
filterParam.setOperator(Operator.QUIT);
filterParam.setValue(值);
}
返回过滤器参数
}
}
我的问题是,当filterparams返回值时,它的值类似于

{name=com.test。FilterParam@15db9742}

这是正确的,但是我想得到map-like的实际值

(姓名=Chuna)

其中key=name,value=Chuna

如果我将方法parse(String,String)的返回类型从FilterParam更改为String,这是可能的,那么我可以很容易地获得它的值

这里,我的要求是不要更改返回类型,而是从map而不是object中获取值


我不知道如何获得价值!请任何人指导我。

您需要在
FitlerParam
类上重写
toString()
方法


默认的
toString()
实现将包名、类名、
@
和对象的哈希代码以十六进制连接起来,您不希望这样,所以您需要提供自己的实现。

自己挖掘java一定会有帮助!是啊,阿琼,你说得对!这是一件基本的事情,我应该多挖点。