編譯Scala代碼似乎有一個問題,該代碼在Java 7 JVM和Scala中使用較舊的(Java 6)JDBC DataSource驅動程序。在Scala中使用Java 7 CommonDataSource
在Java 7中,Oracle爲CommonDataSource
接口添加了一種新方法Logger getParentLogger()
。使用Java 6構建的舊類實現CommonDataSource
不會實現此方法(例如PGConnectionPoolDataSource
和SQLServerDataSource
)。當代碼用Scala編譯器編譯時,它會抱怨具體類沒有實現抽象方法getParentLogger
。
我不知道這是否與Java編譯器發生,但我懷疑不是,因爲它應該已被單元測試捕獲。
我相信,任何添加新方法聲明的接口都會出現此問題。
對於這個問題,Scala是否有任何解決方法?是唯一能夠恢復到JDK 6的解決方案嗎?我沒有SQL Server驅動程序的源代碼,所以我不能自己修復這個問題(我知道開放源代碼沒有這個問題,但我被迫使用該驅動程序出於其他原因)。
什麼代碼是抱怨?你是否試圖實例化一個'SQLServerDataSource',擴展它,或者你在做別的什麼? – leedm777 2012-03-22 20:57:27
'new SQLServerDataSource {...}'試圖將它擴展爲一個匿名的子類(設置大括號內的主機等東西)。我也嘗試創建一個實例,然後初始化屬性**,它工作**。 – Ralph 2012-03-23 10:51:54