java.lang.nullpointerexception怎么解决

 我来答
兔丞飞
高粉答主

推荐于2019-08-06 · 专注娱乐 专注娱乐 专注娱乐
兔丞飞
采纳数:25 获赞数:19893

向TA提问 私信TA
展开全部

首先找到发生异常的那行,然后寻找逐步向上找源头。如果没有必要查找源头,可以直接绕过它。譬如:

1,List<String> books = BooKDAO.findAll();
2,int size = books.size();


如果第2行发生空指针异常了,知道books肯定为null了,这时查找BookDAO.的findAll方法,如果findAll()方法又调用了其他的方法,可以继续查下去。如果没有业务需要,可以直接写成:

List<String> books = BooKDAO.findAll();
int size = 0;
if(books != null){
size = books.size();
}

或者

List<String> books = BooKDAO.findAll();
int size = 0;
try{
size = books.size();
}catch(NullpointerException){
size = 0;或者不写或者打印错误
}

扩展资料

最重要的类是Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。把基本类型的值当成一个对象来表示通常很有必要。包装器类 Boolean、Character、Integer、Long、Float 和 Double 就是用于这个目的。

类 Math 提供了常用的数学函数,比如正弦、余弦和平方根。类似地,类 String 和 StringBuffer 提供了常用的字符串操作。

类 ClassLoader、Process、Runtime、SecurityManager 和 System 提供了管理类的动态加载、外部进程创建、主机环境查询(比如时间)和安全策略实施等“系统操作”。

类 Throwable 包含了可能由 throw 语句抛出的对象(§14.16)。Throwable 的子类表示错误和异常。

参考资料:java.lang - 百度百科

sunjinfu1987
推荐于2018-02-26 · TA获得超过3151个赞
知道大有可为答主
回答量:1218
采纳率:72%
帮助的人:403万
展开全部
这个异常应该算是最简单的一个异常了。很简单的方法,首先找到发生异常的那行,然后寻找逐步向上找源头。如果没有必要查找源头,可以直接绕过它。
譬如:
1.List<String> books = BooKDAO.findAll();
2.int size = books.size();
如果第2行发生空指针异常了,知道books肯定为null了,这时查找BookDAO.的findAll方法,如果findAll()方法又调用了其他的方法,可以继续查下去。如果没有业务需要,
可以直接写成:
List<String> books = BooKDAO.findAll();
int size = 0;
if(books != null){
size = books.size();
}
或者
List<String> books = BooKDAO.findAll();
int size = 0;
try{
size = books.size();
}catch(NullpointerException){
size = 0;或者不写或者打印错误
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在晴天的雨伞
2018-07-05 · TA获得超过6869个赞
知道大有可为答主
回答量:5761
采纳率:86%
帮助的人:1183万
展开全部
一般报java.lang.NullPointerException的原因有以下几种:
1.类没有初始化,例如定义了个String,List,Map 等对象没有初始化就直接使用,肯定会出空指针错误,正确初始化如下:
String str="";
List list = new ArrayList();
Map map = new HashMap();
2.当一个对象的值为空时,你没有判断为空的情况。
你可以试着把下面的代码前加一行代码:
if(rb!=null && rb!="")
改成:
if(rb==null);
if(rb!==null&&!"".equals(rb))

当然还可以多做一个判断,是否不为空字符串
if(rb!==null&&!"".equals(rb.trim()))
判断字符串是否为空在java中比较好的写法是
if(rb!=null&&!"".equals(rb.trim()))

3.在使用框架,例如Spring的时候成员对象是通过注入进来的,需要注意一下两点:
1)成员变量必须有get set 方法
2)必须在配置文件中把实例化好的对象注入进来
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妖感肉灵10
2022-12-02 · TA获得超过6.2万个赞
知道顶级答主
回答量:101万
采纳率:99%
帮助的人:2.2亿
展开全部

首先找到发生异常的那行,然后寻找逐步向上找源头。如果没有必要查找源头,可以直接绕过它。譬如:

1,List<String>books=BooKDAO.findAll();
2,intsize=books.size();


如果第2行发生空指针异常了,知道books肯定为null了,这时查找BookDAO.的findAll方法,如果findAll()方法又调用了其他的方法,可以继续查下去。如果没有业务需要,可以直接写成:

List<String>books=BooKDAO.findAll();
intsize=0;
if(books!=null){
size=books.size();
}

或者

List<String>books=BooKDAO.findAll();
intsize=0;
try{
size=books.size();
}catch(NullpointerException){
size=0;或者不写或者打印错误
}

/iknow-pic.cdn.bcebos.com/8694a4c27d1ed21b27f786aba06eddc451da3f45"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/8694a4c27d1ed21b27f786aba06eddc451da3f45?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/8694a4c27d1ed21b27f786aba06eddc451da3f45"/>

扩展资料

最重要的类是Object(它是类层次结构的根)和Class(它的实例表示正在运行的应用程序中的类)。把基本类型的值当成一个对象来表示通常很有必要。包装器类Boolean、Character、Integer、Long、Float和Double就是用于这个目的。

类Math提供了常用的数学函数,比如正弦、余弦和平方根。类似地,类String和StringBuffer提供了常用的字符串操作。

类ClassLoader、Process、Runtime、SecurityManager和System提供了管理类的动态加载、外部进程创建、主机环境查询(比如时间)和安全策略实施等“系统操作”。

类Throwable包含了可能由throw语句抛出的对象(§14.16)。Throwable的子类表示错误和异常。

参考资料:/baike.baidu.com/item/java.lang/5179788"target="_blank"title="java.lang-百度百科">java.lang-百度百科

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gchqiaqia
2012-04-12
知道答主
回答量:24
采纳率:0%
帮助的人:11.2万
展开全部
空指针异常?直接抛出,要么看看你设置的变量或者对象是否为空
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式