本帖最后由 gao54456 于 2014-12-21 12:11:39 编辑

解决方案 »

  1.   

    用“==”去比的话,比的是内存中的位置,如果两个变量指向相同的内存块就为判断为真。而isEmpty()比的是值是否相等。
    举个例子:Integer a = new Integer(1);  Integer b = new Integer(1);  a == b 为false,a.equals(b) 为真。a和b 在创建对象时指向不同内存块中的1,如果用int a = 1; int b =1创建的话,a和b对象会指向同一内存块"1",这是再用“==”去判,就为真了。平时编程应该尽量回避“==”判定。
      

  2.   

    首先,Java中的字符串的值的比较,应该使用equals方法
    所以:在判断为空的时候用==null和==“”是不管用的
    如果写成if("".equals(变量名))应该就会管用了其次,==null是在判断变量本身是否为空
    比如:String account = null;这样初始化完之后,
    if(account == null)就会返回true了最后,在Java中写==“”是比较危险的,对象的值之间进行比较一定要用equals
    建议看一下《Effective Java》的相关章节,里面有非常详细的解释
      

  3.   

    默默的说一声,判断加个"".equals(xxx);