Java中避免空指针的几个方法
equals
Object类中的equals 方法在非空对象引用上实现相等关系,具有对称性
x.equals(y) 和 y.equals(x) 结果是一样的,但当x == null时会抛出空指针异常
例如:
String x = null;
String y = "world";
if(x.equals(y)){ // java.lang.NullPointerException
}
所以我们要把确定不为null的对象或值放在前面
valueOf()和toString()
调用null对象的toString()会抛出空指针异常,使用valueOf()可以获得相同的值,传递一个null给valueOf()将会返回null
例如:
Integer i = null;
System.out.println(i.toString()); // 抛出NullPointerException异常
System.out.println(String.valueOf(i)); // 返回null 不会出现异常
接口返回值
接口返回对象做非空判断,集合或数组可返回空集合或空数组,避免返回null
作者:itmyhome
Java中避免空指针的几个方法的更多相关文章
- java中获取日期和时间的方法总结
1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下: 要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...
- java中遍历map对象的多种方法
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有ma ...
- java中常用的字符串的截取方法
java中常用的字符串的截取方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int l ...
- Java中的五种单例模式实现方法
[代码] Java中的五种单例模式实现方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...
- 谈谈java中遍历Map的几种方法
java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下具体的用法以及各自的优缺点 先初始化一个map public ...
- Java中产生随机数的两个方法
Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个 ...
- Java中创建数组的几种方法
Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...
- Java中遍历map的四种方法 - 转载
在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...
- JAVA中生成指定位数随机数的方法总结
JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法. 方法一.通过Math类 public static String getRandom1(int len) { int rs = ( ...
随机推荐
- flask实战-个人博客-使用类组织配置
使用类组织配置 在实际需求中,我们往往需要不同的配置组合.例如,开发用的配置,测试用的配置,生产环境用的配置.为了能方便地在这些配置中切换,你可以把配置文件升级为包,然后为这些使用场景分别创建不同的配 ...
- NavigatorIOS
使用 NavigatorIOS,我们需要给他指定一个路由,这样它才能知道显示哪个页面 实例化 Navigator 需要2个必要的属性 —— initialRoute 和 renderSence,它们的 ...
- makedown学习笔记(以后可能会用makedown写博客)
学习手册 https://www.zybuluo.com/mdeditor?url=https%3A%2F%2Fwww.zybuluo.com%2Fstatic%2Feditor%2Fmd-help. ...
- UML-6.3-用例-详述示例
用例标示:摘要(主成功场景).非正式(几乎所有场景).详述. 下边主要说下详述.其模板: 例子: 用例UC1:处理销售 范围 NextGen POS应用 级别 用户目标 主要参与者 收银员 涉众及关注 ...
- this和target目标对象的区别
在事件函数中 event.target和this是一样的效果吗? this是调用方法的对象, evemt.target事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素.文档或窗口. ...
- Binder 驱动(三)
Binder 驱动是 Binder 的最终实现, ServiceManager 和 Client/Service 进程间通信最终都是由 Binder 驱动投递的. Binder 驱动的代码位于 ker ...
- Java中break、continue及标签等跳转语句的使用[下]
作为上一篇使用for循环演示的跳转,这一篇将使用while.相比较来说,while比for循环更简单.代码如下: public class LabeledWhile { public static v ...
- Vue路由开启keep-alive时的注意点
Vue路由开启keep-alive时的注意点 这个不是业务的要求,但是看到每次进入页面就重新渲染DOM然后再获取数据更新DOM,觉得作为一个前端工程师有必要优化下的加载逻辑,正好vue提供了 ke ...
- Java绘制图片并进行合成
以下代码可以生成六行两列的图片,代码改成了可以接受参数可循环的. package com.xgt.util; import com.sun.image.codec.jpeg.JPEGCodec; im ...
- 解决WORD2013输入时光标老跳的问题
Word2013有一个非常影响使用的bug.就是在编辑文档时,光标会乱跑,影响输入.微软给出了一个kb2863845 160多MB的补丁包,安装完成后就可以解决这个问题. 补丁下载链接: 链接:ht ...