我有一个非常简单的问题 - 在 Scala 中创建对象时我们什么时候应该应用 new 关键字?是当我们只尝试实例化 Java 对象时吗?
Use the new
当你想引用一个关键字时class
自己的构造函数:
class Foo { }
val f = new Foo
Omit new
如果您指的是伴随对象的apply
method:
class Foo { }
object Foo {
def apply() = new Foo
}
// Both of these are legal
val f = Foo()
val f2 = new Foo
如果您已经制作了案例课程:
case class Foo()
Scala 秘密地为你创建一个伴生对象,将其变成这样:
class Foo { }
object Foo {
def apply() = new Foo
}
所以你可以做
f = Foo()
最后,请记住,没有任何规则规定同伴apply
方法必须是构造函数的代理:
class Foo { }
object Foo {
def apply() = 7
}
// These do different things
> println(new Foo)
test@5c79cc94
> println(Foo())
7
而且,既然你提到了 Java 类:是的——Java 类很少有
伴随对象apply
方法,所以你必须使用new
和实际的
类的构造函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)