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一定会有帮助!是啊,阿琼,你说得对!这是一件基本的事情,我应该多挖点。