Java中用不建议用等于=号判断字符串相等

同事写的代码dealParam(queryCondition.get("creatDate"))!=""我用debug模式看左边运算结果是"",按理说这个条件判断应该为false,但结果却是true。但很迷的是,虽然条件成立,但条件内代码在本地环境下却没执行(jdk8),而在测试机器上却执行了。后用equals解决这个问题,至于问题原因可以一起探究下。该queryCondition为SpringMVC接收的Map<String,Object>数据,前端传了个&creatDate=的空参数,如果后台接收到是""的话那下列输出肯定为false场景还原:public static void main(String[] args) {    Map<Object, Object> queryCondition = new HashMap<>();    queryCondition.put("creatDate",new String());    System.out.println(dealParam(queryCondition.get("creatDate"))!="");}private static String dealParam(Object obj) {    String str = "";    if (obj == null) {        return str;    }    try {        str = obj.toString();    } catch (Exception e) {        e.printStackTrace();    }    return str;}但实际后台输出为true,如此反推,那creatDate对于前台传的空参,接收的并不是一个字符串了,而是一个对象,因此返回为true!