先贴一段代码:

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;
    }
}
 posted on 2012-08-07 12:37  单守臣  阅读(1330)  评论(1编辑  收藏  举报