Когда я вызываю containsKey (значение), он возвращает false, когда ключ находится на карте. Я был бы признателен, если бы кто-нибудь мог проверить мой код!
Я уже пытался распечатать их ключ и hashmap, метод toString, и они Key находятся на карте.
HashMap<IdentifierInterface, T> hm = new HashMap<IdentifierInterface, T>();
public T getMemory(String v) {
if(hm.containsKey(v)){
return hm.get(v);
}
return null;
}
Методы Hashcode и Equalsв IdentifierInterface
:
public int hashCode() {
return identifier.toString().hashCode();
}
public boolean equals(Object toCompare) {
if (toCompare instanceof Identifier) {
if (toCompare.hashCode() == this.hashCode()) {
return true;
}
}
return false;
}
Ожидаемый результат - true, а факт - false в getMemory ().