首页  >  问答  >  正文

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

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

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

全部回复(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
  • 取消回复