看这个之前,我们先要理解下什么是空指针异常,所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法或成员变量,当我们在java中如果一个引用变量指向的是空,当我们访问它的成员变量或者方法时,java系统就会报NullPointerException。
比如Person person=null;Person 对象中有个eat()方法,当我们访问person.eat()时,就会NullPointerException。
如下,我们先定义一个People
public class People { public String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void eat() { System.out.println("People在吃"); } }
再定义个测试类NullPointerTest
当访问people.name时,系统就会报NullPointerException。public class NullPointerTest { ArrayList<People> list = new ArrayList<People>(); public void point() { People people; people = list.get(0); System.out.println(people.name); } public NullPointerTest() { initData(); } public static void main(String[] args) { NullPointerTest nullPointerTest = new NullPointerTest(); nullPointerTest.point(); } private void initData() { for (int i = 0; i < 10; i++) { list.add(null); } } }在android 项目中我们加非空判断的作用就是为了避免出现空指针异常。比如从本地取数据时和取服务端获取到的数据时要进行非空判断,为了避免取数据的时候,我们代码写对了,但是数据如果是空的,会报空指针异常,然后项目挂掉用的
本地数据源中取得,比如file文件,本地数据库,sd卡。