2013-12-11 58 views
1

我正在嘗試編寫一個類,它使用Squeryl執行通用插入和更新操作,並遵循特定規則。scalac在org.squeryl中找不到正確的插入方法。表

我把它編譯時,它只是調用一個Table[E]update,但是當我打電話insert就在同Table[E]使用相同的參數,編譯器會抱怨說我傳遞一個T,而不是一個org.squeryl.Query[T]

但是在org.squeryl.Table中有一個方法叫做insert,它需要一個T作爲參數!

它甚至不是一個繼承的方法。它就在org.squeryl.Table

它沒有任何約束或其他隱式參數。

scalac怎麼會這麼簡單這麼錯?

我以爲Eclipse可能會感到困惑,但我從sbt中構建項目的結果完全相同。

+0

等等...我認爲這可能是由於scalac推斷返回類型。需要看我的代碼來檢查,但我現在沒有在我面前。 –

+0

你應該提出「擱置」的問題。 – VasyaNovikov

+0

@VasyaNovikov我沒有權力做到這一點,它需要5人的投票。但是沒有必要,因爲我會在幾個小時內查看我的代碼。 –

回答

0

這似乎是由scalac縮小了我可以基於推斷的返回類型調用的方法集。我需要寫下一行,它從方法中返回一個值(這是在if...else之內)。

這是在IDE環境中非常不直觀的行爲,其中只要您鍵入代碼就會進行類型檢查。我沒有寫下一行,而是專注於試圖解決類型錯誤 - 這只是一個短暫的問題。