首頁  >  問答  >  主體

Java中null==1,为什么会报错?

if(a=1){
}
当a=null的时候,会报错,为什么呀?
是不是每一个判断都要先判断a是否等于null?

    String a=null;
    if (a.equals("")) {
        System.out.println(1);
    }
PHP中文网PHP中文网2741 天前787

全部回覆(4)我來回復

  • 黄舟

    黄舟2017-04-18 10:11:58

    首先,if(a=1){}這個if條件語句你就寫錯了,應該寫成if(a==1){}
    其次,對於String的引用型a如果為空,如果呼叫a的方法會拋空指針
      

    String a=null;
    if (a.equals("")) {
        System.out.println(1);
    }
    

    如果你這樣寫,必須要判斷a非null,如果你不想寫判斷a非null這個操作,可以寫成

    String a=null;
    if("".equals(a)){
         System.out.println(1);
    }

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:11:58

    a=1 是什麼語法
    如果a是String型別;
    a= "1";
    如果a是int型別;
    a = 1;
    如果a是int型,int型別是沒有null的
    null只能判斷String

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:11:58

    if語句括號內寫的是判斷表達式,結果是true或false,你寫的a=1是賦值表達式

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 10:11:58

    括號裡是bool型才對,你那個是賦值了

    回覆
    0
  • 取消回覆