Scala构造函数中的函数不会被调用

问题描述:

我正在使用Scala和Play框架来创建一个web应用程序。我有一个连接到Cassandra DB的类。我使用构造函数连接到数据库,但它不起作用,实际上,我无法从构造函数中调用任何函数函数。我是新来的Scala,但从我在Scala上阅读的教程中,它应该可以工作。代码如下:Scala构造函数中的函数不会被调用

class Database 
{  
var cluster = Cluster.builder().addContactPoint(Play.application.configuration.getString("cassandra.node")).build() 
var session = cluster.connect("acm") 
} 

为了清楚起见,我删除了其余的类。 当我创建一个类的实例时,这些函数不会被调用,并且在另一个函数中使用它们时变量将保持未分配状态。他们从一个正常的功能工作得很好。我还用记录器测试了它,但没有写任何内容。那么这里发生了什么?

+1

大概你没有调用构造函数?向我们展示如何创建实例。此外,用两个变量的其他表达式(例如println)来替换这两个变量的rhs。他们接到电话了吗? – 2014-10-12 18:15:06

scala> class A { 
     var x = 1 
     println(s"x = $x") 
     } 

     val a = new A 

,我得到了预期的结果

scala> x = 1 

从上下文给出了什么,我认为它应该工作。如果没有,它应该驻留在其他地方。