安卓开发过程中空指针的问题Java.lang.NullPointerException

   最近做一个新闻客户端的应用,经常出现空指针的问题,我想一方面可能是自己水平有限,二是开发过程中有一些遗漏的地方。一般情况下新手出现空指针的概率较高。下面来总结一下经常出现的问题。

1.所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。

  2.所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。

 3.所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。

原因:

1字符串变量未初始化;  2接口类型的对象没有用具体的类初始化,比如: List lt;会报错  List lt = new ArrayList();则不会报错了 3当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码: if(rb!=null && rb!="") 改成:  if(rb==null);  if(rb!==null&&rb!="") 或者if((“”).equals(rb))

解决办法:

代码段1:    out.println(request.getParameter("username"));    

分析:代码段1的功能十分简单,就是输出用户输入"username"的值。       

 说明:看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不到什么问题。但是,如果某个用户在输入数据时并没有提供表单 域"username" 的值,或通过某种途径绕过表单直接输入时,此request.getParameter("username")的值为空(注意不是空字符串,是空对象 null。),out对象的println方法是无法直接对空对象操作的,因此代码段1所在的JSP页面将会抛出 "Java.lang.NullPointerException"异常。而且即使对象可能为空时,也调用Java.lang.Object或
Object对象本身的一些方法如toString(), equal(Object obj)等操作。  

 代码段2:    String userName = request.getParameter("username");   If (userName.equals("root"))   {....}    

分析:代码段2的功能是检测用户提供的用户名,如果是用户名称为"root"的用户时, 就执行一些特别的操 作。                                                                               

 说明:在代码段2中,如果有用户没有提供表单域"username"的值时,字符串对象userName为null值,不能够将一个null的对象与另一 个对象直接比较,同样,代码段2所在的JSP页面就会抛空指针错误。   一个小技巧:如果要把某个方法的返回值与常量做比较,把常量放在前面,可以避免调用null对象的equals方法。譬如:    If ("root".equals(userName))   {....}       即使userName对象返回了null对象,这里也不会有空指针异常,可以照常运转。

时间: 2015-11-24
Tags: string, list, java, request

安卓开发过程中空指针的问题Java.lang.NullPointerException的相关文章

异常-java.lang.NullPointerException

问题描述 java.lang.NullPointerException 请问下这种异常怎么解决呢 解决方案 空指针错误.这种错误一般是由于: 1.使用的类对象为null 2.指针越界 3.配置文件配置路径有错,无法找到路径 解决方案二: SDK和ADT为22.6.2版本 工程为4.4.2 新建了一个工程 ,代码编写好后并没有报错,在安装支持后报出如下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com

sharepreferences-安卓:java.lang.NullPointerException:

问题描述 安卓:java.lang.NullPointerException: logcat显示错误: FATAL EXCEPTION: main Process: org.droidplanner, PID: 21924 java.lang.RuntimeException: Unable to resume activity {org.droidplanner/org.droidplanner.android.activities.FlightActivity}: java.lang.Nul

servlet-关于java.lang.NullPointerException的问题

问题描述 关于java.lang.NullPointerException的问题 提示的错误是:严重: Servlet.service() for servlet Shopping threw exceptionjava.lang.NullPointerException at cn.itcast.Shopping.doGet(Shopping.java:45) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at

exception java.lang.NullPointerException的问题

问题描述 exception java.lang.NullPointerException的问题 public class StaffDao { //验证登录 public String CheckLogin(String username, String password){ String id = null; String sql="select * from staff where staff_name='"+username+"' and staff_password

错误在哪-java.lang.NullPointerException

问题描述 java.lang.NullPointerException 问问大神,错误在哪,这是一个登录操作.. 解决方案 55行是什么 该不会是userService=null吧 解决方案二: 只能是validateUser()的错了,看一下你这个方法里面是否有空指针出现,例如把null值(userName||userPwd)传了进去,或者是里面某个对象是null,那些你没有贴出来,不造在哪 解决方案三: 我在ss2搭建时,遇到的错误,报空指异常: java.lang.NullPointerE

JsonMappingException: (was java.lang.NullPointerException)

使用jackson 序列化Java对象的时候报异常: Java代码   com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.chanjet.gov.Student["age"])       at com.fasterxml.jackson.databind.JsonMappingException.

java.lang.NullPointerException: Expected timestamp

java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null 使用flume的时候出现的问题. sink是hdfs,然后使用目录自动生成功能.出现如题的错误,看官网文档说的是需要在每

JSP页面中出现的一个异常:org.apache.jasper.JasperException: java.lang.NullPointerException

先把出现的异常情况贴出来吧: type Exception report messagejava.lang.NullPointerException descriptionThe server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: java.lang.NullPointerException

图片-svn更新后,jsp页面报java.lang.NullPointerException

问题描述 svn更新后,jsp页面报java.lang.NullPointerException 请大神指点 谢谢 解决方案 svn一般要先更新再提交,有报错的话就先修改错误 解决方案二: 空指针异常,看看你同组的人有没有修改过东西,没有全部上传