首页 新闻 会员 周边 捐助

安卓开发null引发的错误

0
悬赏园豆:5 [已解决问题] 解决于 2024-09-04 14:26

public static byte[] setGaszero3=null;
if (MainActivity.setGaszero3 != null || MainActivity.setGaszero3.length != 0)

第二句很容易引发错误,错误提示是源码与字节码不匹配,求解决办法,谢谢!

tea2007的主页 tea2007 | 初学一级 | 园豆:3
提问于:2024-08-26 09:52
< >
分享
最佳答案
0

这句引发的应该是空指针错误,setGaszero3==null的时候,会进行后面的判断. 至于你说的错误,你得把错误信息贴出来看看.

收获园豆:1
www378660084 | 小虾三级 |园豆:1252 | 2024-08-26 11:26

我已是|| 或,应该不会判断后面吧

tea2007 | 园豆:3 (初学一级) | 2024-08-26 11:43

@tea2007: 你应该用的是与. 与是你说的,前面条件不成立就不会进行后面的判断了.

www378660084 | 园豆:1252 (小虾三级) | 2024-08-26 16:43
其他回答(4)
0

把if里的||换为&&

收获园豆:1
lf03 | 园豆:549 (小虾三级) | 2024-08-26 11:34

原因是如果为null 还是去执行了 MainActivity.setGaszero3.length != 0,当为空时是没有length这个属性,所以抛出了异常

支持(0) 反对(0) lf03 | 园豆:549 (小虾三级) | 2024-08-26 11:37

@lf03: 我已是|| 或,应该不会判断后面吧 。之前就是&& 出错后改过来的

支持(0) 反对(0) tea2007 | 园豆:3 (初学一级) | 2024-08-26 11:44

@tea2007: 用&&是都需要满足 只有前面不满足条件 不会去执行后面的操作
用||只要前面已经满足了 就不会执行后面的操作
所以用&&能满足你现在的需求

支持(0) 反对(0) lf03 | 园豆:549 (小虾三级) | 2024-08-26 11:48
0

根据您提供的代码片段,你遇到的错误可能是由于第二句的逻辑条件导致的。在这里,您正在检查setGaszero3是否为null或其长度是否为0。
如果setGaszero3null,则尝试访问其length属性时会引发NullPointerException错误,这是因为null没有任何属性或方法。
为了解决这个问题,您可以首先检查setGaszero3是否为null,然后再检查其长度。这样可以避免在setGaszero3null时访问其属性。
您可以使用如下代码示例进行修改:
java

if (MainActivity.setGaszero3 != null && MainActivity.setGaszero3.length != 0)
注意修改的是逻辑运算符。将||(逻辑或)改为&&(逻辑与)。这样,只有在setGaszero3不为null且长度不为0时,条件才会被认为是真的。
希望这个解决方案可以帮助您解决问题。如果您有其他问题,请随时向我提问!

收获园豆:2
Technologyforgood | 园豆:7775 (大侠五级) | 2024-08-27 08:00
0

首先,就不是很建议使用static变量,尤其是在MainActivity,这属于内存泄漏问题,也可能造成各种异常。

要是想要判断为setGaszero3是否空,可以使用

if (MainActivity.setGaszero3 == null || MainActivity.setGaszero3.length == 0)

如果判断不空,可以对上面进行取反

if (MainActivity.setGaszero3 != null && MainActivity.setGaszero3.length != 0)

收获园豆:1
shunlibest | 园豆:241 (菜鸟二级) | 2024-08-30 16:44

我也不想用static,但我不用,跨页面就调不到这个值,请教有什么办法?

支持(0) 反对(0) tea2007 | 园豆:3 (初学一级) | 2024-09-02 10:52

@tea2007: 可以搜一下,Activity页面通信

支持(0) 反对(0) shunlibest | 园豆:241 (菜鸟二级) | 2024-09-02 13:54
0

谢谢各位,我去掉后半句,只停留 if (MainActivity.setGaszero3 == null 好像没问题了。

tea2007 | 园豆:3 (初学一级) | 2024-09-02 10:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册