在应用中,常量和变量哪个在equals的前面哪个在后面,有什么区别。请具体说明......

解决方案 »

  1.   

    没有区别,如果结果是true,反过来肯定也是true,如果是false,反过来也一定是false
      

  2.   

    常量在前,不是 null。不会 NPE。
      

  3.   

    常量一样
    如果是object.getXXX()那就不一样了
      

  4.   

    没区别并且,为了符合人类的阅读习惯,请把变量放在前,常量放在后。我一直觉得,"".equals(var)是非人类喜欢的写法
      

  5.   

    String s=null;
    if(s.equals(“”)){
    ...
    }
    这样会报空指针异常,而反过来就不会报了
      

  6.   

    确认字符串var不是null,可以 var.isEmpty()
      

  7.   

    public class Test { /**
     * @param args
     */
    public static void main(String[] args) { String s = null;

    // 1
    if ("1".equals(null)) {
    System.out.println("ok");
    } else {
    System.out.println("no");
    }

    try {
    // 2
    if (s.equals("1")) {
    System.out.println("ok1");
    }
    } catch (Exception e) {
    System.out.println("no1");
    }
    }}结果:
    no
    no1如果把变量放在equals前面的话变量一旦是null的场合出系统错误
    如果把变量放在equals后面变量就是即使是null也不会出系统错误
    从结果就可以看出来
      

  8.   

    public class Test
    {
    public static void main(String args[])
    {
    String str1=null;
    /*比如说长电是‘FIRST’*/
    /*1、以前都是先判断str1等不等于null,然后equals*/
    if(null!=str1&&"FIRST".equals(str1))
    {
    System.out.println("str1和FIRST相等");
    }
    else
    {
    System.out.println("str1和FIRST不相等");
    }
    /*2、看了大家的回复感觉null!=str1都没必要写了*/
    if("FIRST".equals(str1))
    {
    System.out.println("str1和FIRST相等");
    }
    else
    {
    System.out.println("str1和FIRST不相等");
    }
    }
    }
      

  9.   

    public class Test
    {
    public static void main(String args[])
    {
    String str1=null;
    /*比如说长电是‘FIRST’*/
    /*1、以前都是先判断str1等不等于null,然后equals*/
    if(null!=str1&&"FIRST".equals(str1))
    {
    System.out.println("str1和FIRST相等");
    }
    else
    {
    System.out.println("str1和FIRST不相等");
    }
    /*2、看了大家的回复感觉null!=str1都没必要写了*/
    if("FIRST".equals(str1))
    {
    System.out.println("str1和FIRST相等");
    }
    else
    {
    System.out.println("str1和FIRST不相等");
    }
    }
    }
      

  10.   

    null!==变量&&常量.equals(变量)
      

  11.   


    你难道不觉得是否为空需要单独判断吗?
    if(var == null){
       doXXX
    }else if(var.euquals("")){//这里会有空指针吗?
       doXXX
    }
    有时候不需要单独判断的时候:
    if(var == null || var.equals("")){//请问空指针是哪里来的?
       doXXX
    }
      

  12.   

    空指针也是一种判断的分支,但是常量在前,就相当于你把null这种情况给省略了,有时候这么做是不对的
      

  13.   

    equals()方法,它的特点之一就是对称性,也就是x.equals(y)返回结果为true,那y.equals(x)返回结果也为true。所有的类继承此方法的同时肯定也同样继承这些特点。更多详细特点你可以查阅帮助文档,里面说的很详细。
      

  14.   

    常量放在前面会比较好,除非你能确认变量一定不为空。A.equal(B),如果A为null会报空指针,而B为null就不会报空指针,所以,如果变量处在A的位置的话,你还要判断一下变量是否为空。
    变量在前面的正确写法:
    if(变量 != null && 变量.equal(常量)) {}
    变量在后面的正确写法:
    if(常量.equal(变量)) {}
      

  15.   

    赞同此。equals方法确保对称性……
      

  16.   

    推荐常量写在前面 
         if(Constant.equal(Variable))
             {syso("SUCCESS");}
         else{syso("False")};
      

  17.   


    NullPointerException空指针异常么
    大神说的话一定要让人琢磨一下下才能显得牛吗,直接用通俗易懂的话说不是更好吗
      

  18.   

    我觉得没区别 equals操作符在比较的时候不会因为像其他语言用==,少写一个=,导致赋值