scalac не находит правильный метод вставки в org.squeryl.Table

63
5

Я пытаюсь написать класс, который создает общие вставки и обновления любого типа сущности с помощью Squeryl, следуя определенным правилам.

У меня есть компиляция, когда она просто вызывает update в Table[E], но когда я вызываю insert в той же Table[E], с тем же аргументом, компилятор жалуется, что я передаю T, а не org.squeryl.Query[T].

Но есть метод в org.squeryl.Table называемый insert который принимает T как аргумент!

Это даже не унаследованный метод. Это прямо в org.squeryl.Table !

У него нет никаких ограничений или других неявных аргументов.

Как скалак может получить что-то настолько простое, что неправильно?

Я думал, что Eclipse, возможно, был смущен, но я получаю точно такой же результат от создания проекта в sbt.

спросил(а) 2021-01-25T17:54:08+03:00 4 месяца, 3 недели назад
1
Решение
99

Это, по-видимому, вызвано скаляром, сужающим набор методов, которые я мог бы вызывать, исходя из типа предполагаемого возврата. Мне нужно было написать следующую строку, которая возвращает значение из метода (это было внутри if...else).

Это действительно неинтуитивное поведение в контексте IDE, в котором код проверяется typecheck, как только вы вводите его. Вместо того, чтобы писать следующую строку, я сосредоточился на попытке исправить ошибку типа - это была всего лишь переходная проблема.

ответил(а) 2021-01-25T17:54:08+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема