博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
减少程序中出现 NullPointerException 出现的常用方法
阅读量:6584 次
发布时间:2019-06-24

本文共 1734 字,大约阅读时间需要 5 分钟。

hot3.png

1、平时使用 equals方法时,它是对称的,即 

a.equals(b)与b.equals(a)

结果是一样的。对于 a.equlas(b)来说,如果a是null。则会出现NullPointerException 。eg:

String password = null;if (password.equals("123456")) { //会出现 空指针异常    //TODO}

如果将校验方式更改一下:

if ("123456".equals(password)) {    //TODO}

能成功校验,并且,不会出现 NullPointerException;

2、当使用String.valueOf()和toString()时,返回结果是一样的,如果toString()方法的调用者是null,则会出现NullPointerException

int money = null;System.out.print(String.valueOf(money));System.out.print(money.toString()); //出现空指针异常

所以说在转字符串的时候,可以倾向使用String.valueOf();

在这里涉及到一个效率问题,就是在转字符串的时候:

package com.java.practice;/** * 同样的其他类型转字符串 * toString是最快的 * @author xbuding * */public class ToString {    public static void main(String[] args) {        int loopTime = 50000;	Integer i = 0;	long startTime = System.currentTimeMillis();	for (int j = 0; j < loopTime; j++) {		String str = String.valueOf(i);	}	System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");	startTime = System.currentTimeMillis();	for (int j = 0; j < loopTime; j++) {		String str = i.toString();	}	System.out.println("Integer.toString():" + (System.currentTimeMillis() - startTime) + "ms");	startTime = System.currentTimeMillis();	for (int j = 0; j < loopTime; j++) {		String str = i + "";	}	System.out.println("i + \"\":" + (System.currentTimeMillis() - startTime) + "ms");    }}

运行的结果:

String.valueOf():3msInteger.toString():2msi + "":8ms

可以看出toString()方法的效率是最高的。

3、使用commons-lang3,的StringUtils

System.out.println(StringUtils.isEmpty(null)); //trueSystem.out.println(StringUtils.isBlank(null)); //trueSystem.out.println(StringUtils.isNumeric("1232")); //trueSystem.out.println(StringUtils.isAllUpperCase("SDD")); //true

使用该工具,不会抛出空指针异常

转载于:https://my.oschina.net/xbuding/blog/654591

你可能感兴趣的文章
Nexus Repository Manager 3新漏洞已被用于挖矿***传播,建议用户尽快修复
查看>>
docker之导出、导入、数据搬迁
查看>>
图书盘点机软件作为图书盘点机使用
查看>>
多个线程使用通用一个对象的处理方案
查看>>
_getch一段高复用代码
查看>>
OSGI
查看>>
mysql日志
查看>>
我的友情链接
查看>>
如何快速提升企业客服服务效率
查看>>
大型网站架构演化
查看>>
linux驱动开发笔记--2.3内核模块相比于应用程序
查看>>
Linux强制卸载挂载系统
查看>>
我的友情链接
查看>>
/etc/fstab详解
查看>>
安装zabbix 2.0.3报错date() [<a href='function.date'>function.date</a>]
查看>>
DNS私有根
查看>>
Html5很给力——代码可实现的视觉效果
查看>>
有趣的开源家族合照,看看你认识几个?
查看>>
windows xp iis5.1服务器安装
查看>>
医疗信息化、医学、医院管理、医疗器械资料下载
查看>>