Rob*_*Rob 2 scala traits anonymous-class
我发现了一个具有特征的有趣条件:
scala> trait Thing[A]
defined trait Thing
scala> val myThing: Thing[Int] = new Thing[Int]
error: trait Thing is abstract; cannot be instantiated
scala> val myThing: Thing[Int] = new Thing[Int] { }
myThing: Thing[Int] = $anon$1@135f160e
Run Code Online (Sandbox Code Playgroud)
为什么代码块允许我创建 Thing trait 的实例?
这是该语言的一个特性,称为匿名类。当您编写 时new Thing[Int] { },编译器会创建一个名称$anon$1(或类似名称)的新类extends Thing[Int],然后创建 的新实例$anon$1。
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |