Map<String,Object> map = new HashMap<>();
map.put("a1","a");
map.put("a2","");
map.put("a3",1);
map.put("a4",null);
一、强制转换
value = "a"或""可以进行强制转换String类型,值是String类型
String value = (String)map.get("a1");
String value = (String)map.get("a2");
// value = "a"
// value = ""
value = 1(Integer类型)不能强制转换String类型
String value = (String)map.get("a3"); // 类型转换异常
value = null转换虽然不会报错,值依旧是null
key = a5,map中没有a5这个键,值也是null
String value = (String)map.get("a4");
String value = (String)map.get("a5");
// value = null
// value = null
弊端:int或long类型强制转换异常
二、toString()
value = "a"或""或1(Integer类型),toString()方法可以直接转换String类型
String value = map.get("a1").toString();
String value = map.get("a2").toString();
String value = map.get("a3").toString();
// value = "a"
// value = ""
// value = "1"
value = null或key = a5 ,a5不存在 ,toString()方法报空指针异常
String value = map.get("a4").toString(); // 空指针异常
String value = map.get("a5").toString(); // 空指针异常
弊端:空指针异常
三、String.valueOf() (推荐使用)
value = "a"或""或1或null 都可以直接转换String类型的字符串
String value = String.valueOf(map.get("a1"));
String value = String.valueOf(map.get("a2"));
String value = String.valueOf(map.get("a3"));
String value = String.valueOf(map.get("a4"));
String value = String.valueOf(map.get("a5")); // a5键不存在
// value = "a"
// value = ""
// value = "1"
// value = "null"
// value = "null"
弊端:null对象会被转换成"null"
四、+ ""(推荐使用)
String value = map.get("a1") + "";
String value = map.get("a2") + "";
String value = map.get("a3") + "";
String value = map.get("a4") + "";
String value = map.get("a5") + ""; // a5键不存在
// value = "a"
// value = ""
// value = "1"
// value = "null"
// value = "null"
弊端:null对象会被转换成"null"
方法三与方法四转换的字符串
非空判断:
if(!"".equals(value) && !"null"..equals(value)){
}
空判断:
if("".equals(value) || "null"..equals(value)){
}