0

ScalaFX と MySQL データベースを使用してプロジェクトを開発しています。

SBT はbuild.sbtファイル経由で MySQL コネクタを正常に追加しました。プロジェクトをコンパイルすると、型の不一致エラーで停止します。

[error]  found   : com.aitrich.scalafx.test.DbConnection.type (with underlying type object com.aitrich.scalafx.test.DbConnection)
[error]  required: com.aitrich.scalafx.test.DbConnection
[error]     val orders: Seq[Person] = OrderDao.getAllOrders(dbc)
[error]                                                     ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 14 s, completed Nov 14, 2013 12:04:06 PM

以下は、メイン メソッドのコード スニペットです。

var dbc = DbConnection
val orders: Seq[Person] = OrderDao.getAllOrders(dbc)

これはDbConnectionケースクラスです:

case class DbConnection() {
  def getConnectionString = 
    "jdbc:mysql://%s:3306/simpleorder?user=%root&password=%sa".
      format("localhost","root","sa")
}

なぜcompile失敗するのですか?

4

1 に答える 1

1

tl;drDbConnectionケース クラスをインスタンス化する (インスタンスを作成する) 必要があります。

これは決して SBT や ScalaFX の問題ではありません。

メソッドに引数として渡すものOrderDao.getAllOrdersは、型のインスタンスではなく型です。単純に型が一致せず、Scala コンパイラーがコンパイルを中断します (これがまさに、そもそも Scala を使用する理由です。コンパイル時の完全な型チェックです)。

行を変更する

var dbc = DbConnection

var dbc = new DbConnection

コンパイラはその行を通過します。newキーワードに注意してください。

于 2014-01-02T12:13:36.043 に答える