Я использую JDO с типом языка запросов DataNucleus в Scala. Поэтому у меня есть код, который выглядит следующим образом:. Eq вызывает предупреждение. Как я могу избавиться от него?
val id: Long = // something
val cand: QDbObject = QDbObject.candidate()
pm.query[DbObject].filter(cand.id.eq(id))...
В двух словах, это запускает запрос для всех DbObject
с которых id
поле равно id
. К сожалению, я получаю следующее предупреждение:
NumericExpression[Long] and Long are unrelated: they will most likely
never compare equal
Очевидно, что компилятор Scala считает, что NumericExpression[Long]
использует встроенный в определении eq()
, который похож на ==
, но так как это происходит от Java, метод eq()
имеет абсолютно не имеет никакого отношения к методу Scala eq()
.
Есть ли способ избавиться от предупреждения? Очевидно, это произойдет много, и я боюсь, что эти предупреждения не будут скрывать настоящие предупреждения.
Обновление (2013-06-29)
Это было зафиксировано в Scala 2.10.2. Предупреждения исчезли.
Я бы назвал это ошибкой. Даже если вы включаете 'eq' в back-ticks (трудно показать в комментарии, я думаю ...), который должен удалить любое особое значение, которое язык Scala придает любому данному символу, вы получаете такую же диагностику. –
Где я могу спросить, действительно ли это ошибка/сообщить об этом? – TOB
JIRA Scala находится по адресу https://issues.scala-lang.org/secure/Dashboard.jspa. –