public static byte[] setGaszero3=null;
if (MainActivity.setGaszero3 != null || MainActivity.setGaszero3.length != 0)
第二句很容易引发错误,错误提示是源码与字节码不匹配,求解决办法,谢谢!
这句引发的应该是空指针错误,setGaszero3==null的时候,会进行后面的判断. 至于你说的错误,你得把错误信息贴出来看看.
我已是|| 或,应该不会判断后面吧
@tea2007: 你应该用的是与. 与是你说的,前面条件不成立就不会进行后面的判断了.
把if里的||换为&&
原因是如果为null 还是去执行了 MainActivity.setGaszero3.length != 0,当为空时是没有length这个属性,所以抛出了异常
@lf03: 我已是|| 或,应该不会判断后面吧 。之前就是&& 出错后改过来的
@tea2007: 用&&是都需要满足 只有前面不满足条件 不会去执行后面的操作
用||只要前面已经满足了 就不会执行后面的操作
所以用&&能满足你现在的需求
根据您提供的代码片段,你遇到的错误可能是由于第二句的逻辑条件导致的。在这里,您正在检查setGaszero3
是否为null
或其长度是否为0。
如果setGaszero3
为null
,则尝试访问其length
属性时会引发NullPointerException
错误,这是因为null
没有任何属性或方法。
为了解决这个问题,您可以首先检查setGaszero3
是否为null
,然后再检查其长度。这样可以避免在setGaszero3
为null
时访问其属性。
您可以使用如下代码示例进行修改:
java
if (MainActivity.setGaszero3 != null && MainActivity.setGaszero3.length != 0)
注意修改的是逻辑运算符。将||
(逻辑或)改为&&
(逻辑与)。这样,只有在setGaszero3
不为null
且长度不为0时,条件才会被认为是真的。
希望这个解决方案可以帮助您解决问题。如果您有其他问题,请随时向我提问!
首先,就不是很建议使用static变量,尤其是在MainActivity,这属于内存泄漏问题,也可能造成各种异常。
要是想要判断为setGaszero3是否空,可以使用
if (MainActivity.setGaszero3 == null || MainActivity.setGaszero3.length == 0)
如果判断不空,可以对上面进行取反
if (MainActivity.setGaszero3 != null && MainActivity.setGaszero3.length != 0)
我也不想用static,但我不用,跨页面就调不到这个值,请教有什么办法?
@tea2007: 可以搜一下,Activity页面通信
谢谢各位,我去掉后半句,只停留 if (MainActivity.setGaszero3 == null 好像没问题了。