先贴一段代码:
PageBean.java
package org.andy; public class PageBean { private Integer start; private Integer limit; public PageBean(){ } public PageBean(Integer paramStart, Integer paramLimit) { this.start = paramStart; this.limit = paramLimit; } public int getStart() { return this.start.intValue(); } public int getLimit() { return this.limit.intValue(); } }
测试类:
package org.andy; public class Test { public static void main(String[] args) { PageBean pageBean=new PageBean(); StringBuffer sb=new StringBuffer(); sb.append("start:").append(pageBean.getStart()); sb.append("/t"); sb.append("limit:").append(pageBean.getLimit()); System.out.println(sb.toString()); } }
运行这段代码时,便会报异常,异常如下:
Exception in thread "main" java.lang.NullPointerException at org.andy.PageBean.getStart(PageBean.java:16) at org.andy.Test.main(Test.java:7)
很显然是空指针异常,
这是开发经常遇到的问题,,
当Integer类型的变量没有赋值(默认null)的时候,对其执行intValue(),就会出现上面的错误,一个健壮的程序是不允许这种情况出现的,修改PageBean可以解决:
package org.andy; public class PageBean { private Integer start; private Integer limit; public PageBean() { } public PageBean(Integer paramStart, Integer paramLimit) { this.start = paramStart; this.limit = paramLimit; } public int getStart() { if (start != null) return this.start.intValue(); return 0; } public int getLimit() { if (limit != null) return this.limit.intValue(); return 0; } }