空指针的问题 || 短路或 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .....你的代码是什么逻辑,if(abcdd==null || abcdd.length()>0) if(exp1 || exp2) 当exp1为false的时候才会继续判断exp2所以假如abcdd.length()>0这个判断得到执行,说明(abcdd!=null)为false,即abcdd为null。所以你的exp2必然导致空指针异常,你应该用&&而不是|| if(abcdd==null || abcdd.length()>0) 是不是 && abcdd是一个参数,你在调用test1这个方法的时,需要为这个参数赋初值,一个字符串。然后在你判断这个字符串是否是null的时候,不会报错。但是其他引用会报空指针异常。 调用的时候 abc没有在堆中分配内存吧。 第一个是false 才看第二个 if(abcdd!=null || abcdd.length()>0)} 如果abcdd不是null,后面的abcdd.l...是不会判断的,只有前面的那个条件不满足,也就是abcdd是null,才会判断第二个式子。而且,你的代码这么写是没有意义的! 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊 思路问题,个人感觉LZ想要的是&& “||”或符号,若第一个语句为假,则判断第二个语句。这段代码应该为:if(abcdd!=null && abcdd.length()>0) 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了 || 换 &&,null哪来的length方法,可不就空指针了。你都判断到空指针,对这个变量的引用就要停止了,居然还敢取length。 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊编译报错是因为if后面必须有语句块,而你的代码没有 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了请问为什么string是ner的就不会有异常了呢? 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊编译报错是因为if后面必须有语句块,而你的代码没有这个没有理解饿,请问是怎么 样的一个原理呢? if(abcdd!=null || abcdd.length()>0) 为何if后面没有语句块呢? 谢谢! 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了请问为什么string是ner的就不会有异常了呢?new代表在堆中开辟了内存,String abcdd;并没有在堆中有任何数据 各位大侠,其实我知道是逻辑或可以解决,但是我问的是为什么报空指针.if aaa!=null 或 aaa.length>0 ,aaa!=null和 aaa空指针有什么关系么? 请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了请问为什么string是ner的就不会有异常了呢?new代表在堆中开辟了内存,String abcdd;并没有在堆中有任何数据但是如果直接写 abcdd.length就不会报空指针呢? 这个是作为参数传入的啊... abcdd是一个参数,你在调用test1这个方法的时,需要为这个参数赋初值,一个字符串。然后在你判断这个字符串是否是null的时候,不会报错。但是其他引用会报空指针异常。 这个跟你传入的String abcdd有关,你abcdd不为空,就不会报空指针。 判断符“||” 意思为“或者”这大家都知道。意思是说“||”前后的判断都会执行。当abcdd为“null”时 执行第二个判断abcdd.length()>0就是使用"null"去掉用length()方法 所有会报空指针异常。 if(abcdd!=null || abcdd.length()>0)这个很明显,当你的abcdd==null时,你的abcdd.length()肯定报空指针啊,所有你这个判断条件是abcdd!=null && abcdd.length()>0,是&&不是||。 if(exp1 || exp2) 当exp1为false的时候才会继续判断exp2所以假如abcdd.length()>0这个判断得到执行,说明(abcdd!=null)为false,即abcdd为null。所以你的exp2必然导致空指针异常,你应该用&&而不是|| abcdd为NULL,这说明abcdd还没有被实例化,因此不能调用其方法。 如果一个对象还没有被实例化,那么访问该对象或调用该对象的方法都将导致NullPointerException异常。所以编译时抛出了异常 List数组怎么转换成int[]数组? int i = 3;这个3是存储在栈中还是常量池? 关于JLabel 问题 用DOM如何通过属性来获取XML相对应的值? 请问能不能用正则表达式来区分出汉字跟汉字乱码? JTable某行使用黄色字体,如何实现? 请教一下java applet和CGI交互的问题???????????? Date类的问题 大神请指教 一个和引用 ,包装类有关的问题 小白求教用eclipse做好的项目怎么部署到服务器上? java新手,求前辈大神们指导(java 函数参数传递的疑惑) 一个静态变量初始化的顺序问题:
所以假如abcdd.length()>0这个判断得到执行,说明(abcdd!=null)为false,即abcdd为null。所以你的exp2必然导致空指针异常,你应该用&&而不是||
如果abcdd不是null,后面的abcdd.l...是不会判断的,只有前面的那个条件不满足,也就是abcdd是null,才会判断第二个式子。而且,你的代码这么写是没有意义的!
“||”或符号,若第一个语句为假,则判断第二个语句。
这段代码应该为:
if(abcdd!=null && abcdd.length()>0)
编译报错是因为if后面必须有语句块,而你的代码没有
编译报错是因为if后面必须有语句块,而你的代码没有这个没有理解饿,请问是怎么 样的一个原理呢? if(abcdd!=null || abcdd.length()>0) 为何if后面没有语句块呢? 谢谢!
if aaa!=null 或 aaa.length>0 ,aaa!=null和 aaa空指针有什么关系么?
所以假如abcdd.length()>0这个判断得到执行,说明(abcdd!=null)为false,即abcdd为null。所以你的exp2必然导致空指针异常,你应该用&&而不是||
如果一个对象还没有被实例化,那么访问该对象或调用该对象的方法都将导致NullPointerException异常。
所以编译时抛出了异常