Почему `java.util.LinkedHashMap` не равно, когда ключ и значение идентичны? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть связанный HashMap только с одним элементом, и я хочу сравнить его на равенство.Поэтому я написал следующий контрольный пример спока:

    def "Get average value for a date key"() {
    given:
    def ex = ["08-2018": 13 as BigDecimal] as Map<String, Integer>

    when:
    def wta = new worktime_average()
    def result = wta.get_time_vals(wtime, '08-2018') as Map<String, Integer>

    then:
    result.values()[0] == ex.values()[0] // Pass!
    result.keySet() == ex.keySet() // Pass!
    result == ex // Failed!!
    }

Не получается сказать:

result == ex
|      |  |
|      |  [08-2018:13] (java.util.LinkedHashMap)
|      false
[08-2018:13] (java.util.LinkedHashMap)

Понятия не имею, почему.Есть догадки?

1 Ответ

0 голосов
/ 23 октября 2018

В Groovy String (одинарная кавычка) не эквивалентно GString (двойная кавычка) - это часто появляется, когда они используются в качестве ключей карты.Убедитесь, что ваши ключи String s, позвонив as String или .toString() перед установкой / использованием ключа.

...