我无法理解为什么在此代码中出现语法错误:
"T.scala"文件:
trait T
Run Code Online (Sandbox Code Playgroud)
"A.scala"文件:
class A
object A {
def apply() = new A()
}
Run Code Online (Sandbox Code Playgroud)
"other.scala"文件:
val a = new A() with T // ok
val b = A() with T // syntax error ';' or newline expected
Run Code Online (Sandbox Code Playgroud)
我可以在不使用new关键字的情况下继承创建新的类实例吗?
我没有发现任何相关信息.
A()转换为A.apply()返回新对象的方法,与之不同new A().
你基本上是在尝试这样做(这是行不通的):
val b = A.apply()
val c = b with T
Run Code Online (Sandbox Code Playgroud)
您不能with在已创建的对象上使用.