1、toString()方法
底层代码
public String toString() { return this;}
其返回值为String类型的字符串本身
1 Mapparams = new HashMap ();2 //Map集合中没有key为1的键值对3 String result = params.get("1").toString();4 if (result == null) {5 System.out.println("result=" + result);6 } else {7 System.out.println("result=字符串:" + result); 8 }
2、valueOf()方法
底层代码
public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString();}
返回参数的字符串表示形式,即如果入参为空则返回字符串null即"null",如果入参有值则返回则字符串形式的值
1 Mapparams = new HashMap ();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这么写合法
1 Mapparams = new HashMap ();2 //Map集合中没有key为1的键值对3 String result = (String)params.get("1");4 if (result == null) {5 System.out.println("result=" + result);6 } else {7 System.out.println("result=字符串:" + result);8 }
总结:从map集合中获取key对应的value时,如果key不存在,使用String.valueOf(Map.get("key")),得到的结果是String类型null即为"null";如果使用Map.get("key").toString(),
得到的结果是空指针异常;使用(String)Map.get("key"),得到的结果是null。