Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在HashMap中设置默认值_Java_Spring_Spring Mvc - Fatal编程技术网

Java 在HashMap中设置默认值

Java 在HashMap中设置默认值,java,spring,spring-mvc,Java,Spring,Spring Mvc,我试图找到一种方法,使HashMap返回一个默认值。例如,如果您查看以下内容,这将打印出“测试:=null”如果我想要请求一个默认值,那么每当我尝试获取hashMap中未设置的内容时,我都会获取该值,该怎么办 Map<String, String> test = new HashMap<String, String>(); test.put("today","monday"); System.out.println("Test =:" + test.get("hello"

我试图找到一种方法,使HashMap返回一个默认值。例如,如果您查看以下内容,这将打印出“测试:=null”如果我想要请求一个默认值,那么每当我尝试获取hashMap中未设置的内容时,我都会获取该值,该怎么办

Map<String, String> test = new HashMap<String, String>();
test.put("today","monday");
System.out.println("Test =:" + test.get("hello") + "");
Map test=newhashmap();
测试。推杆(“今天”、“星期一”);
System.out.println(“Test=:”+Test.get(“hello”)+”;
尝试以下操作:

Map<String,String> map = new HashMap<String,String>(){
    @Override
    public String get(Object key) {
        if(! containsKey(key))
            return "DEFAULT";
        return super.get(key);
    }
};

System.out.println(map.get("someKey"));
Map Map=newhashmap(){
@凌驾
公共字符串获取(对象键){
如果(!containsKey(键))
返回“默认”;
返回super.get(key);
}
};
System.out.println(map.get(“someKey”);

扩展
HashMap
并覆盖
get()
而不是尝试给数据赋值,为什么不在想要提取数据时进行检查呢

if (!set.containsKey(key)){
    return default_value;
}
else{
    return set.get(key);
}

不,不能将其用作切换条件。 您可以通过将get方法扩展到另一个类来重写该方法,也可以按如下方式进行尝试:

Map<String, String> test = new HashMap<String, String>();
test.put("today", "monday");
String s = test.get("hello") == null? "default value" : test.get("hello");
System.out.println("Test =:" + s);
其中打印:

value of key1
default value

最好检查返回值,而不是更改
Map
在IMO中的工作方式。
StringUtils.defaultString(String)
方法应该可以实现以下功能:

Map<String, String> test = new HashMap<>();
assertEquals("", StringUtils.defaultString(test.get("hello")));
assertEquals("DEFAULT", StringUtils.defaultString(test.get("hello"), "DEFAULT"));
Map test=newhashmap();
assertEquals(“,StringUtils.defaultString(test.get(“hello”));
assertEquals(“DEFAULT”,StringUtils.defaultString(test.get(“hello”),“DEFAULT”);

StringUtils JavaDoc是。

覆盖
映射
。注意这会破坏合同。
value of key1
default value
Map<String, String> test = new HashMap<>();
assertEquals("", StringUtils.defaultString(test.get("hello")));
assertEquals("DEFAULT", StringUtils.defaultString(test.get("hello"), "DEFAULT"));