class Foo(bar: String) {
import Foo.Bar
def this() = this(Bar) // this line fails, it seems I can only do
// def this() = this(Foo.Bar)
}
object Foo {
val Bar = "Hello Bar"
}
Basically, how do I use Bar after I import Foo.Bar, do I really have to call Foo.Bar every single time?
Secondary constructors have outer scope to prevent you doing something silly like this:
class Silly(foo: String) {
val bar = 123
def this() = this(bar.toString)
}
where you try to pass a parameter to the constructor...after creating it in the constructor.
Unfortunately, this means that import Foo.Bar is not in scope for that line. You'll have to use the full path Foo.Bar.
For everything in the class except the additional constructors, Foo.Bar will be in scope as Bar.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With