使用Lambda实现所述SAM时,如何访问SAM特性的受保护方法?
例如,这可以正常编译:
trait Foo {
def foo(): String
val bar = 5
}
val f: Foo = () => f.bar.toString
但是这些不:
trait Foo {
def foo(): String
protected val bar = 5
}
val f: Foo = () => f.bar.toString // Symbol bar is inaccessible from this place
val f: Foo = () => bar.toString // Cannot resolve symbol bar
实施带有lambda 的SAM 时,有什么方法可以访问栏?
答案 0 :(得分:0)
尝试
val f: Foo = new Foo {
override def foo(): String = bar.toString
}