如何在没有提供完整实现的情况下拥有抽象类型的实例?

时间:2014-08-22 21:18:42

标签: scala

有没有办法在不必实现抽象方法的情况下创建Java实例或Scala特征的实例?

我希望范围内有val c: java.sql.Connection,并且不想实现界面java.sql.Connection

在我看来,这似乎很嘲弄,但在我追求使用模拟库的想法之前,我在这里要求寻找替代方案(我不太了解)。

我宁愿避免使用val c: java.sql.Connection = null而且我真的希望我可以使用一个流畅的界面来模拟我想要提供的所有方法。

2 个答案:

答案 0 :(得分:0)

答案是否定的。仅供参考,模拟使用反射来模仿给定类型的接口,但它们不是该类型的实际实例。

答案 1 :(得分:0)

我认为你可以,但它可能对你产生一些影响:

trait MySqlConnection {
  def c: SqlConnection 
}

现在:

val msqlC = new MySqlConnection {
  var c: SqlConnection = _
}

对于定义为SqlConnection的虚拟class SqlConnection,它可以正常工作。