1、toString()方法

底层代码

public String toString() {
return this;
}

其返回值为String类型的字符串本身

 Map<String, Object> params = new HashMap<String, Object>();
//Map集合中没有key为1的键值对
String result = params.get("1").toString();
if (result == null) {
System.out.println("result=" + result);
} else {
System.out.println("result=字符串:" + result);
}

2、valueOf()方法

 底层代码

public static String valueOf(Object obj) {
  return (obj == null) ? "null" : obj.toString();
}

返回参数的字符串表示形式,即如果入参为空则返回字符串null即"null",如果入参有值则返回则字符串形式的值

1 Map<String, Object> params = new HashMap<String, Object>();
2 //Map集合中没有key为1的键值对
3 String result = String.valueOf(params.get("1"));
4 if (result == null) {
5 System.out.println("result=" + result);
6 } else {
7 System.out.println("result=字符串:" + result);
8 }

3、(String)强制转换,这种方法并不能强制转换成其他非String类型,但是(String)null这么写合法

 Map<String, Object> params = new HashMap<String, Object>();
//Map集合中没有key为1的键值对
String result = (String)params.get("1");
if (result == null) {
System.out.println("result=" + result);
} else {
System.out.println("result=字符串:" + result);
}

总结:从map集合中获取key对应的value时,如果key不存在,使用String.valueOf(Map.get("key")),得到的结果是String类型null即为"null";如果使用Map.get("key").toString(),

得到的结果是空指针异常;使用(String)Map.get("key"),得到的结果是null。

Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别的更多相关文章

  1. 过滤掉map集合中key或value为空的值

    package cn.com.utils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; impo ...

  2. 获取map集合中key、value

    获取Map集合类中key.value的两种方法 方法一:利用Set集合中的keySet()方法 Map<String,String> map = new HashMap<String ...

  3. Java分享笔记:使用entrySet方法获取Map集合中的元素

    /*--------------------------------- 使用entrySet方法取出Map集合中的元素: ....该方法是将Map集合中key与value的关系存入到了Set集合中,这 ...

  4. 根据key删除Map集合中的key-value映射

    一:在遍历Map时是不可以删除key-value映射的,如果根据key删除,如下: public static void main(String[] args) { Map<String,Obj ...

  5. 键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key, 用个数作为value,放入到map集合中,遍历map集合

    package cn.it.zuoye5; import java.io.File;import java.util.HashMap;import java.util.Iterator;import ...

  6. Map集合中的同一键值key重复赋值

    前言: 验证:对Map集合中的同一键值key重复赋值? 结果:对Map集合中的同一键值key重复赋值会覆盖之前的结果. 验证如下: Map<String, Object> map = ne ...

  7. map集合中对应key的value为null处理办法

    问题: Map集合中对应key的value为null,但是现在需要将这个value转为Integer类型,这个value如果不是null,那么get到的是long类型或者是Bigdecimal类型 处 ...

  8. map集合修改其中元素 去除Map集合中所有具有相同值的元素 Properties长久保存的流操作 两种用map记录单词或字母个数的方法

    package com.swift.lianxi; import java.util.HashMap; import java.util.Iterator; import java.util.Map; ...

  9. Map集合中value()方法与keySet()、entrySet()区别

    http://blog.csdn.net/liu826710/article/details/9001254 在Map集合中 values():方法是获取集合中的所有的值----没有键,没有对应关系, ...

随机推荐

  1. Redis搭建集群

  2. vue 实现返回上一页不请求数据keep-alive

    常规操作: 我们通常会将通过接口请求数据的方法放在==created== 或者 ==mounted==这两个生命周期中的一个里面调用. 但是我们知道,不管是我们刚进入这个页面还是从其他页面返回这个页面 ...

  3. ORA-00911: invalid character 错误解决集锦

    转: ORA-00911: invalid character 错误解决集锦 参考https://www.linuxidc.com/Linux/2017-05/144361.htm ORA-00911 ...

  4. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_06-Feign远程调用-Ribbon测试

    2.1.2 Ribbon测试 Spring Cloud引入Ribbon配合 restTemplate 实现客户端负载均衡.Java中远程调用的技术有很多,如: webservice.socket.rm ...

  5. node.js连接DB2实现fetchRows一行一行获取sql的源码

    参见程序中的queryResult那部分: /* * This example demonstrates how to fetch a single row from a large table * ...

  6. python多进程实例详解

    写在前面:python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用的多进程包multiprocessing ...

  7. Redis set集合的使用

    集合中的元素个数最多为2的32次方-1个,集合中的元素师没有顺序的. Redis集合的操作命令和对应的api如下: smembers [set]JedisAPI:public Set<Strin ...

  8. 开始使用 git(配置+常用命令)

    ▶ 注意 页面显示问题: -- 是两个短横线 - 是一个横短线 由于显示问题导致两个短横线之间没有空格,看起来像是一条横线,实则是两条短横线 ▶ git 常用命令 ◆ git add ● git ad ...

  9. find程序实现

    一个简单的查找字符串匹配 #include <stdio.h> #include <string.h> #define MAXLINE 1000 int getline(cha ...

  10. 探索grafana

    因为zabbix的监控图形不够美观,功能也不够强大, 那么就用到了grafana 填写zabbix插件配置: 如下需要根据主机群组和主机名来完成图形: grafana报警如下: 解决如下: 更改标准设 ...