我在一些书中经常看到,程序避免直接返回字符串,想了解一下原因。
    如:
     (1)不推荐
         
             if(....){
                 return "success";
               }else{
                 return "false";
               }
         }
     (2)推荐
       
          public static final String SUCCESS="success";
          public static final String FALSE= "false";
          .......
          if(....){
                 return SUCCESS;
               }else{
                 return FALSE;
               }
       

解决方案 »

  1.   

    这个是为避免以后更改字符串的值引发错误。试想,如果用第一种方式,调用这个函数的地方都要这样写:String result = fun();
    if (result.equals("success")) {
        doSomething();
    }如果有一天你把字符串的值改掉了,例如,改成"true",那么用这个函数的地方就全错了。而如果是第二种方式,调用这个函数的方法可以这样写:String result = fun();
    if (result.equals(SomeClass.SUCCESS)) {
        doSomething();
    }这样,随便你怎么改字符串的值,都不会对调用者产生影响。