Он говорит о подозрительном вызове, потому что вы передаете объект Literal
в качестве ключа (literalHashMap.put((Literal)proposition, updatedCost);
вы понижаете предложение, поэтому он становится Literal
объектом). Итак, я могу предположить, что proposition
не является Literal
объектом. Тем не менее, вы передаете proposition
как ключ к HashMap
, который является совершенно другим типом объекта. Чтобы это исправить: cost += literalHashMap.get((Literal) proposition);
. Или, чтобы сэкономить крошечный бит времени:
Literal lit = (Literal) proposition;
literalHashMap.put((lit, updatedCost);
cost += literalHashMap.get(list);
Чтобы избежать удушения дважды.