如何在Scala中定义无参数构造函数
这个问题太愚蠢了。。。无论如何,我就是找不到正确的信息,因为我看到的每个Scala构造函数示例类都至少使用一个参数 我想把这个类从Java翻译成Scala:如何在Scala中定义无参数构造函数,scala,scala-2.8,Scala,Scala 2.8,这个问题太愚蠢了。。。无论如何,我就是找不到正确的信息,因为我看到的每个Scala构造函数示例类都至少使用一个参数 我想把这个类从Java翻译成Scala: public class SubscriptionConverter extends Converter { public SubscriptionConverter() { Context ctx = new InitialContext(); UserEJB userEJB = (UserEJB) ctx.looku
public class SubscriptionConverter extends Converter {
public SubscriptionConverter() {
Context ctx = new InitialContext();
UserEJB userEJB = (UserEJB) ctx.lookup("java:global/teachernews/UserEJB");
}
(...)
}
所以我只有一个无参数构造函数。我在Scala中使用了this(),但我无法获得类似的示例,如上面的示例。
如何在Scala中编写它?在类级别声明的任何语句都将作为默认构造函数的一部分执行。所以你只需要做这样的事情:
class SubscriptionConverter extends Converter {
val ctx = new InitialContext
val userEJB = ctx.lookup("java:global/teachernews/UserEJB")
(...)
}
@dbyrne已经介绍了最重要的部分,但我将添加一些次要细节
def this()=…
定义。与Java不同,每个辅助构造函数必须委托给主构造函数您可能需要声明这些VAL
private
——否则它们将是公共字段。在该代码中,变量是方法范围的局部变量,而在这里它们进入对象的每个实例。Scala 2.8的local
在这里可能用于引入一个块。@Daniel我在哪里可以阅读有关local的更多信息?找不到任何信息,即使是2.8语言也找不到reference@ifischerlocally
是在scala.Predef
上定义的,它实际上什么都不做。这只是为了使悬挂块(嵌套块)看起来更好。