解决方案 »

  1.   

    .....你的代码是什么逻辑,if(abcdd==null || abcdd.length()>0)
      

  2.   

    if(exp1 || exp2) 当exp1为false的时候才会继续判断exp2
    所以假如abcdd.length()>0这个判断得到执行,说明(abcdd!=null)为false,即abcdd为null。所以你的exp2必然导致空指针异常,你应该用&&而不是||
      

  3.   

    if(abcdd==null || abcdd.length()>0) 是不是 &&
      

  4.   

    abcdd是一个参数,你在调用test1这个方法的时,需要为这个参数赋初值,一个字符串。然后在你判断这个字符串是否是null的时候,不会报错。但是其他引用会报空指针异常。
      

  5.   

    调用的时候 abc没有在堆中分配内存吧。
      

  6.   

    第一个是false 才看第二个
      

  7.   

    if(abcdd!=null || abcdd.length()>0)} 
    如果abcdd不是null,后面的abcdd.l...是不会判断的,只有前面的那个条件不满足,也就是abcdd是null,才会判断第二个式子。而且,你的代码这么写是没有意义的!
      

  8.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊
      

  9.   

    思路问题,个人感觉LZ想要的是&&
      

  10.   


    “||”或符号,若第一个语句为假,则判断第二个语句。
    这段代码应该为:
    if(abcdd!=null && abcdd.length()>0)
      

  11.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了
      

  12.   

    || 换 &&,null哪来的length方法,可不就空指针了。你都判断到空指针,对这个变量的引用就要停止了,居然还敢取length。
      

  13.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊
    编译报错是因为if后面必须有语句块,而你的代码没有
      

  14.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了请问为什么string是ner的就不会有异常了呢?
      

  15.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊
    编译报错是因为if后面必须有语句块,而你的代码没有这个没有理解饿,请问是怎么 样的一个原理呢?  if(abcdd!=null || abcdd.length()>0) 为何if后面没有语句块呢? 谢谢!
      

  16.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了请问为什么string是ner的就不会有异常了呢?new代表在堆中开辟了内存,String abcdd;并没有在堆中有任何数据
      

  17.   

    各位大侠,其实我知道是逻辑或可以解决,但是我问的是为什么报空指针.
    if aaa!=null 或 aaa.length>0 ,aaa!=null和 aaa空指针有什么关系么?
      

  18.   

    请问是如何分配内存的?各位代码有逻辑错误的大侠,我知道有逻辑错误,我的问题是,编译器报空指针,它是为什么呢?他还没有运行啊?abcddd我完全可以是有值得啊你传入的String对象要先new出来,这样就不会有异常了请问为什么string是ner的就不会有异常了呢?new代表在堆中开辟了内存,String abcdd;并没有在堆中有任何数据但是如果直接写 abcdd.length就不会报空指针呢? 这个是作为参数传入的啊...
      

  19.   

    abcdd是一个参数,你在调用test1这个方法的时,需要为这个参数赋初值,一个字符串。然后在你判断这个字符串是否是null的时候,不会报错。但是其他引用会报空指针异常。
      

  20.   

    这个跟你传入的String abcdd有关,你abcdd不为空,就不会报空指针。
      

  21.   

    判断符“||” 意思为“或者”这大家都知道。意思是说“||”前后的判断都会执行。当abcdd为“null”时 执行第二个判断abcdd.length()>0就是使用"null"去掉用length()方法 所有会报空指针异常。
      

  22.   

    if(abcdd!=null || abcdd.length()>0)这个很明显,当你的abcdd==null时,你的abcdd.length()肯定报空指针啊,所有你这个判断条件是abcdd!=null && abcdd.length()>0,是&&不是||。
      

  23.   

    if(exp1 || exp2) 当exp1为false的时候才会继续判断exp2
    所以假如abcdd.length()>0这个判断得到执行,说明(abcdd!=null)为false,即abcdd为null。所以你的exp2必然导致空指针异常,你应该用&&而不是||
      

  24.   

    abcdd为NULL,这说明abcdd还没有被实例化,因此不能调用其方法。   
    如果一个对象还没有被实例化,那么访问该对象或调用该对象的方法都将导致NullPointerException异常。
    所以编译时抛出了异常