Equals方法在来自不同对象

时间:2018-03-22 07:11:43

标签: java

示例::

List<KeyValueDTO> keyValueList = new ArrayList<>();
KeyValueDTO keyValueDTO;
    for (Map<String, Object> map : list) {
        Map<String, Object> searchMap = (Map<String, Object>) map.get("search");


            keyValueDTO = new KeyValueDTO();
            String key = (String) map.get("data"); // here key = userFirstName userLastName
            keyValueDTO.setKey(key);

            keyValueDTO.setValue((String) searchMap.get("value"));
            keyValueList.add(keyValueDTO);
    }

    for (KeyValueDTO keyValueDTO1 : keyValueList) {
        System.out.println("key :: " + keyValueDTO1.getKey());

        System.out.println("result : " + keyValueDTO1.getKey().equals("userFirstName userLastName"));  // It must print true for key = userFirstName userLastName
    }

结果::

key :: userFirstName userLastName 结果:false //一定是真的吗?

我在AWS Lambda JAVA 8上尝试此操作。

我尝试了以下代码进行测试

    String s = new String("TEST");
    String b = "TEST";

    List<Object> list = new ArrayList<>();
    list.add("TEST");

    String n = null;
    for (Object object : list) {
        n = (String) object;
    }

    System.out.println(list.contains("TEST"));
    System.out.println(s.equals(b));
    System.out.println(b.equals(n));
    System.out.println(s.equals(n));
    System.out.println(n.equals("TEST"));

结果::         真正         真正         真正         真正         真

这似乎是一种奇怪的行为,或者它可能是一个我没有得到的小错误。

0 个答案:

没有答案