toString(),String.valueOf,(String)在处理空对象时的区别
public static void main(String[] args) {
Map<String,Object> map = new HashMap<>();
map.put("a", 1);
System.out.println("------------toString()-------------");
try {
System.out.println(map.get("b").toString());
} catch (NullPointerException e) {
System.out.println("toString():直接会报空指针异常"); //toString()会报空指针异常
}
System.out.println();
System.out.println("------------String.valueOf-------------");
System.out.println("String.valueOf 输出值为:"+String.valueOf(map.get("b"))); //输出值为null
System.out.println("“null”.equals String.valueOf输出值为:"+"null".equals(String.valueOf(map.get("b")))); //输出值为null,其实是字符串"null"
System.out.println();
System.out.println("------------(String)-------------");
System.out.println("(String) 输出值为:"+(String) map.get("b")); //输出为null
System.out.println("“null”.equals (String)对比时输出值为:"+"null".equals((String) map.get("b"))); //输出值为null,其实是个空对象
try {
System.out.println(((String) map.get("b")).equals("null"));
} catch (NullPointerException e) {
System.out.println("(String) .equals(“null”):对比时会报空指针异常"); //(String)强转,使用equals函数会报空指针异常
}
}
总结:空对象使用一下函数时:
toString():直接会报空指针异常
String.valueOf:输出值为null,其实是字符串"null"
(String)://输出值为null,其实是个空对象
toString(),String.valueOf,(String)在处理空对象时的区别的更多相关文章
- toString()和String.valueof()比较
toString()和String.valueof()比较 做项目时常常会用到类型转换,比较常用的是toString(),但其实还是用String.valueof()比较好.看源码后他们的区别就更加 ...
- java-toString()、(String)、String.valueOf 的区别
Object x = new Integer(1218); System.out.println((String)x); 如上代码编译通过,运行时报错: java.lang.ClassCastExce ...
- String.valueOf()
1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下 ...
- String.valueOf() 方法的使用
1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 ...
- String.valueOf() ,其他类型转为字符型
1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下 ...
- Java string.valueof的用法以及与parseint的区别
一.由基本数据型态转换成String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法 有以下几 ...
- Java中String.valueOf()方法的解释
1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下 ...
- Java队列与栈转换中String.Valueof()使用
1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下 ...
- JavaScript引用类型之Array数组的toString()和valueof()方法的区别
一.转换方法 1.在JavaScript中几乎所有对象都具有toLocaleString().toString和valueof()方法,因为,所有的对象都继承自Object,而前面所说的方法都是Obj ...
随机推荐
- 盘一盘 NIO (二)—— Channel解析
Channel是个啥? Channel,顾名思义,它就是一个通道.NIO中的所有IO都是从 Channel 开始的. Channel通道和流非常类似,主要有以下几点区别: 1.流是单向的,通道是双向的 ...
- 2019-在iOS里添加admob横幅广告示例
下载sdk , 解压 导入项目文件夹: 在info.plist里加入应用id(不是广告单元id): GADApplicationIdentifier 设置Build Settings选项 设置ap ...
- RestTemplate最详解
目录 1. RestTemplate简单使用 2. 一些其他设置 3. 简单总结 在项目中,当我们需要远程调用一个HTTP接口时,我们经常会用到RestTemplate这个类.这个类是Spring框架 ...
- 【朝花夕拾】Handler篇(二)
前言 一年前写过一篇文章[朝花夕拾]Handler篇,随着这一年来对Handler更多的认识和理解,本文对Handler知识点做的一些补充. 一.为什么要引入Handler Handler的主要作用是 ...
- 洛谷 P1262 【间谍网络】
题库 : 洛谷 题号 : 1262 题目 : 间谍网络 link : https://www.luogu.org/problemnew/show/P1262 思路 : 这题可以用缩点的思想来做.先用T ...
- POJ-2155-Matrix二位树状数组应用
题目: 一个只有0和1构成的二维平面,给你两种指令,一种是区间的更新,即0变为1,1变为0:一种是查询一个点是1还是0: 由于是二进制,所以每次更新在相应的点上加一,最后对2取余即可. 至于二维的树状 ...
- hdu 5974 A Simple Math Problem(数学题)
Problem Description Given two positive integers a and b,find suitable X and Y to meet the conditions ...
- 【Offer】[31] 【栈的压入、弹出序列】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如,序列{1,2,3 ...
- 2018阿里-研发工程师JAVA Software Engineer, Java
岗位描述Job Description如果你想了解JAVA开发在阿里巴巴互联网生态系统中无与伦比的应用广度与深度: 如果你对基础技术感兴趣,你可以参与基础软件的设计.开发和维护,如分布式文件系统.缓存 ...
- Optional和Stream的map与flatMap
Optional的map和flatMap Optional存在map和flatMap方法.map源码如下 public<U> Optional<U> map(Function& ...